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


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.


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


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




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


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



<object xmlns="http://www.xmlsh.org/jxml">
   <member name="foo">
            <member name="bar">

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

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