JSON XML Schema (JXML)


A proposal for a simple XML schema which represents JSON data.

Abstract

In order to generate, read, and process JSON data using XML Tools it is useful to model the JSON Data Model using XML instead of using the JSON Text Serialization format directly.

This proposal specifies an XML schema which directly models the JSON Data Model within XML. Simple tools can be used to translate to and from this schema to JSON Text Serialization, allowing XML tools to work with the JSON data model directly in XML.

Goals

The goals of this schema are to provide a simple XML representation of the JSON data model. By defining JSON in XML, and accompanying tools for parsing and serializing to/from JSON to XML(JXON), XML tools can be used without reguards to JSON serialization itself and instead focus purely on the data model transformations.

The JXML schema is intended as a very simple schema which represents the entire JSON data model as directly as possible. It is not intended necessarily as the best schema to use to represent data in XML, but rather as a schema as close to the JSON data model as reasonable. Most likely use cases would involve transforming this to or from a more usable XML format for particular applications.

Using this schema and a supporting implementation, JSON may be 'round tripped' losslessy through XML. ( JSON -> XML -> JSON) but not visa-versa.

Use Cases


Schema


The schema is based on the JSON data model as described at http://www.json.org. It consists of the following elements






Element object

Attributes: none
Child Elements: zero or more "member" elements
Text: empty

Element member

Attributes: name
Child Elements: Exactly one 'value' (object|boolean|array|string|number|null)
Text: empty

Element boolean

Attributes: none
Child Elements: none
Text: "true" or "false"

Element array

Attributes: none
Child Elements: Zero or more 'value' (object|boolean|array|string|number|null)
Text: none

Element string

Attributes: none
Child Elements: none
Text: The value of the string

Any charactors not allowed within XML must be JSON escaped. This includes the unicode range

All other characters should be represented natively in XML, and when text serialized entity encoded.



Element number

Attributes: none
Child Elements: none
Text: the value of the number in XSD "double" format


Element null

Attributes: none
Child Elements: none
Text: empty

Diagram

JXMLDiagram

Implementations

The JXML schema is supported by xmlsh by the commands json2xml and xml2json


Download

The schema in XSD form (jxml.xsd) and diagram (jxml.jpg) may be downloaded here
  Attachment Size Date Added
      jxml.jpg   41.75 KB   2/03/2011 11:28 am
      jxml.xsd   1.22 KB   2/03/2011 11:28 am


Example


JSON
 {
  "foo":
   [true,null,1.23,
	{
	 "bar":"spam"
	}
   ]
 }


JXML
<object xmlns="http://www.xmlsh.org/jxml">
   <member name="foo">
      <array>
         <boolean>true</boolean>
         <null/>
         <number>1.23</number>
         <object>
            <member name="bar">
               <string>spam</string>
            </member>
         </object>
      </array>
   </member>
</object>




There are no comments on this page. [Add comment]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki