How JSON maps to XML
- An object with one key, like
{"order": {…}}, makes that key the document element. Anything else is wrapped in a root element you name. - Keys become child elements; an array repeats its element once per item, and the items of a top-level array become
itemelements. - Keys starting with
@(or the prefix you choose) that hold a string, number or boolean become attributes;#textbecomes the element's text. nullbecomes an empty element; numbers and booleans are written as JSON writes them.
Keys that are not XML names
XML names can't contain spaces or start with a digit, so "delivery date" becomes delivery_date and "2x" becomes _2x; the renamed keys are listed under the result. &, < and > in values, and quotes in attributes, are escaped.
After converting
The XML has no schema yet. Generate one from the result with the XSD generator, then check new documents against it in the validator.
Questions
Is my JSON uploaded?
No. The conversion runs in your browser.
How do I make an attribute?
Prefix the key: {"price": {"@currency": "EUR", "#text": "75.00"}} gives <price currency="EUR">75.00</price>.
Can the XML have namespaces?
Yes: write the declarations as keys on the root object ("@xmlns" or "@xmlns:cbc") and use prefixed keys such as "cbc:ID".
What if the JSON is invalid?
The converter stops at the first syntax error and shows its line and column.
Other tools
- XML formatter: Pretty-print or minify XML, keeping text, CDATA and comments as written.
- XPath tester: Evaluate XPath 3.1 against a document and see each match with its line.
- XSD generator: Infer an XML Schema from sample documents, checked against them.
- XML from XSD: Generate a sample XML document from a schema, validated against it.
- XSLT transformer: Run XSLT 1.0, 2.0 or 3.0 on a document and see the result, the messages and the files it writes.
- XML diff: Compare two XML documents as trees: changed, added and removed elements, attributes and text.
- XML to JSON converter: Convert XML to JSON, with arrays where an element repeats or wherever its XSD allows.
- XML to CSV converter: Turn a repeating element into CSV rows: invoice lines, products, records.
- E-invoice viewer: Read an XRechnung, ZUGFeRD, Factur-X or Peppol invoice as a document, and print it.
- XML validator: check a document against XSD, DTD, RelaxNG or Schematron, up to 1 GB.