Pragmatic XML
Pragmatic XML ist eine ursprünglich von Stefan Goessner vorgeschlagene JSON-Kodierung einer Teilmenge von XML. Im Gegensatz zu MicroXML ist Pragmatic XML nicht offiziell standardisiert und unterstützt die Reihenfolge von XML-Elementen und "Mixed Content" (XML-Elemente die sowohl Text als auch andere XML-Elemente als Kinder haben) nur in beschränkter Form. Auch der Name des Wurzelelements lässt sich nicht kodieren.
Die Abbildung von XML nach JSON basiert auf folgenden Regeln:
XML-Fragment | JSON-Fragment |
---|---|
<e/> |
"e": null oder "e": {} |
<e>text</e> |
"e": "text" |
<e name="value"/> |
"e": { "@name": "value" } |
<e name="value">text</e> |
"e": { "@name": "value", "#text": "text" } |
<e><a>text</a><b>text</b></e> |
"e": { "a": "text", "b": "text" } |
<e><a>text</a><a>text</a></e> |
"e": { "a": ["text", "text"] } |
<e>text<a>text</a></e> |
"e": { "a": "text" } |
Die letzte Regeln zur Behandlung von Mixed Content weicht von Goessners Vorschlag dahingehend ab, dass Pragmatic XML in diesem Fall Textelemente ignoriert.
Beispiel
{
"a": ["some", "text"]
"b": null,
"c": { "@name": "value", "#text": "content" }
}
Die ebenfalls übliche Variante Simple XML unterscheidet nicht zwischen
Element- und Attributnamen und verwendet unterschiedliche Feldnamen für
Textelemente (z.B. content
statt #text
). Die Kodierung von XML-Dokumenten
in JSON ist dadurch jedoch nicht mehr verlustfrei umkehrbar.
Homepage | https://www.xml.com/pub/a/2006/05/31/converting-between-xml-and-json.html |
erstellt | 2006 |
Autor | Stefan Goessner |
Grundformat | JSON |
Datenmodell | XML |