# xml-json.de: Volltext aller Ratgeber und Tool-Erklärung > Vollständiger Markdown-Dump der Tool-Erklärung, FAQ und aller sechs Ratgeber von xml-json.de. > Kuratiert von der AKARA Solutions GmbH. Quelle: https://xml-json.de/llms.txt (kuratierter Index) Lizenz: Inhalte urheberrechtlich geschützt, Zitate mit Quellenangabe erlaubt. --- # XML zu JSON Converter **URL:** https://xml-json.de/ xml-json.de ist ein kostenloser Online-Converter, der XML-Dokumente in gültiges JSON umwandelt. Das Tool läuft vollständig im Browser des Nutzers (clientseitig). Es werden keine Daten hochgeladen und keine Eingaben an einen Server übertragen. Damit ist der Konverter DSGVO-freundlich und auch für sensible Daten geeignet. Betreiber ist die AKARA Solutions GmbH aus Pinneberg. ## XML und JSON: kurz erklärt XML (Extensible Markup Language) und JSON (JavaScript Object Notation) sind die beiden verbreitetsten Formate für den Datenaustausch zwischen Systemen. XML strukturiert Daten in verschachtelten Elementen mit Tags und Attributen. JSON nutzt Schlüssel-Wert-Paare, Objekte und Arrays. JSON ist kompakter, leichter lesbar und lässt sich in JavaScript direkt verarbeiten, weshalb moderne Web-APIs überwiegend JSON verwenden. ## So funktioniert die Umwandlung In drei Schritten zum Ergebnis: 1. XML einfügen, 2. auf Konvertieren klicken, 3. das JSON kopieren oder herunterladen. ### Mapping-Regeln | XML-Konstrukt | JSON-Ergebnis | Beispiel | | --- | --- | --- | | Element mit Text | Schlüssel-Wert-Paar | Anna wird zu "name": "Anna" | | Attribut | Eigenschaft mit @-Präfix | wird zu "@jahr": "2024" | | Wiederholtes Element | Array | wird zu "item": [ {}, {} ] | | Namespace-Präfix | Teil des Schlüssels | wird zu "soap:Body" | | Text neben Attribut | Eigenschaft #text |

Hi

wird zu "#text": "Hi" | ### XML vs. JSON im Vergleich | Merkmal | XML | JSON | | --- | --- | --- | | Syntax | Tags und Attribute | Schlüssel-Wert-Paare | | Datentypen | keine (alles Text) | String, Zahl, Boolean, null | | Datenmenge | höher (Schließ-Tags) | kompakter | | Kommentare | ja | nein | | Typischer Einsatz | SOAP, Konfiguration, Dokumente | REST-APIs, Web-Apps | ### Typische Anwendungsfälle - SOAP-Antworten für eine moderne REST-/JavaScript-Anwendung aufbereiten - RSS- oder Atom-Feeds in JSON für ein Frontend umwandeln - Exporte aus Shop-, ERP- oder Buchhaltungssystemen weiterverarbeiten - Konfigurationsdateien von XML auf JSON migrieren - HL7-CDA- oder andere fachspezifische XML-Dokumente lesbar machen --- # Häufige Fragen (FAQ) ## Was macht der XML zu JSON Converter? Der Converter wandelt XML-Dokumente in gültiges JSON um. Sie fügen Ihr XML ein, klicken auf Konvertieren und erhalten sofort die JSON-Ausgabe zum Kopieren oder Herunterladen. Die Umwandlung läuft vollständig in Ihrem Browser. ## Ist der XML zu JSON Converter kostenlos? Ja, das Tool ist komplett kostenlos und ohne Registrierung nutzbar. Es gibt keine Begrenzung der Nutzungen und keine versteckten Kosten. ## Werden meine Daten gespeichert oder hochgeladen? Nein. Die gesamte Verarbeitung findet direkt in Ihrem Browser statt (clientseitig). Ihre XML-Daten werden zu keinem Zeitpunkt an einen Server übertragen oder gespeichert, was den Konverter DSGVO-freundlich und für sensible Daten geeignet macht. ## Kann ich den Converter auf dem Handy nutzen? Ja, das Tool ist vollständig mobil-optimiert und funktioniert in jedem modernen Browser auf Smartphone, Tablet und Desktop, ohne Installation. ## Wie werden XML-Attribute in JSON dargestellt? XML-Attribute werden üblicherweise mit einem Präfix in das JSON-Objekt übernommen, am verbreitetsten ist das @-Zeichen. Aus wird so etwa { "buch": { "@jahr": "2024" } }. Der Textinhalt eines Elements mit Attributen landet in einer eigenen Eigenschaft, häufig "#text". ## Was passiert mit wiederholten XML-Elementen? Treten gleichnamige Elemente mehrfach unter demselben Eltern-Element auf, werden sie zu einem JSON-Array zusammengefasst. Aus zwei -Elementen wird "artikel": [ {...}, {...} ]. Kommt ein Element nur einmal vor, bleibt es ein einzelnes Objekt, nicht ein Array mit einem Element. ## Wie werden XML-Namespaces wie soap: oder xsi: behandelt? Namespace-Präfixe wie soap: oder xsi: werden standardmäßig als Teil des JSON-Schlüssels übernommen, etwa "soap:Envelope". JSON kennt selbst kein Namespace-Konzept, daher bleibt das Präfix als reiner Namensbestandteil erhalten. Bei Bedarf kann man Präfixe in einem Nachbearbeitungsschritt entfernen. ## Gibt es eine Größenbeschränkung für die XML-Datei? Es gibt kein festes Server-Limit wie bei Upload-basierten Diensten (etwa 50 MB), da die Konvertierung lokal in Ihrem Browser läuft. Die praktische Grenze hängt vom Arbeitsspeicher Ihres Geräts ab. Mehrere Megabyte große Dateien lassen sich auf üblichen Geräten problemlos verarbeiten. ## Warum sind Zahlen im JSON als Text (String) und nicht als Zahl? XML kennt keine Datentypen, jeder Wert ist dort reiner Text. Ein konservativer Konverter übernimmt Werte daher als String, um Datenverluste (etwa führende Nullen in Postleitzahlen) zu vermeiden. Manche Tools bieten eine optionale Typinferenz, die "42" automatisch in die Zahl 42 umwandelt. ## Kann ich SOAP-XML, RSS oder HL7-Dateien in JSON umwandeln? Ja. Solange die Datei gültiges XML ist, lässt sie sich umwandeln, das gilt für SOAP-Nachrichten, RSS-Feeds, SVG, HL7-CDA und ähnliche XML-basierte Formate. Spezifische Namespaces und Attribute bleiben dabei nach den üblichen Mapping-Regeln erhalten. --- # Ratgeber 1: XML in JSON umwandeln: Schritt-für-Schritt-Anleitung **URL:** https://xml-json.de/ratgeber/xml-in-json-umwandeln-anleitung/ **Autor:** Mateusz Viola ## Was ist XML und was ist JSON? XML (Extensible Markup Language) ist eine Auszeichnungssprache, die das W3C 1998 standardisiert hat. Daten werden in verschachtelten Tags abgelegt, jedes Element hat ein öffnendes und ein schließendes Tag, zusätzlich kann es Attribute und Namespaces tragen. XML war jahrzehntelang das Rückgrat von Web Services (SOAP), Konfigurationsdateien, RSS-Feeds und Dokumentformaten wie DOCX. JSON (JavaScript Object Notation) ist ein deutlich schlankeres Datenformat, das auf der Objekt-Syntax von JavaScript beruht. Es kennt nur eine Handvoll Bausteine: Objekte (geschweifte Klammern), Arrays (eckige Klammern), Strings, Zahlen, die Wahrheitswerte true und false sowie null. JSON ist in ECMA-404 und RFC 8259 spezifiziert und hat sich als Standardformat für moderne REST- und GraphQL-APIs durchgesetzt. Beim Umwandeln geht es darum, die Tag-Struktur von XML in die Objekt-Struktur von JSON zu überführen. Das ist meist verlustfrei möglich, an ein paar Stellen sind allerdings Konventionen nötig, weil XML Dinge ausdrücken kann, die JSON von Haus aus nicht kennt. ## So läuft die Umwandlung ab Technisch passieren beim Konvertieren drei Dinge: Das XML wird zu einem Baum geparst (DOM), dieser Baum wird nach den Mapping-Regeln in JSON-Strukturen übersetzt, und das Ergebnis wird formatiert ausgegeben. Beim Browser-Tool geschieht das vollständig auf Ihrem Gerät. ## Ein Mini-Beispiel: vom XML zum JSON XML-Eingabe: ```xml XML lernen A. Beispiel ``` JSON-Ausgabe: ```json { "buch": { "@jahr": "2024", "titel": "XML lernen", "autor": "A. Beispiel" } } ``` Das Attribut "jahr" wird zur Eigenschaft "@jahr" mit @-Präfix. Die Unterelemente "titel" und "autor" werden zu normalen JSON-Eigenschaften. Die Jahreszahl bleibt als String "2024" erhalten, weil XML keine Datentypen kennt. ## In 3 Schritten: XML mit dem Tool umwandeln 1. XML einfügen. Kopieren Sie Ihr XML in das linke Eingabefeld des Konverters oder ziehen Sie eine .xml-Datei per Drag-and-drop hinein. 2. Konvertieren. Klicken Sie auf Konvertieren. Das Tool parst das XML, wendet die Mapping-Regeln an und zeigt das formatierte JSON sofort rechts an. 3. Kopieren oder herunterladen. Übernehmen Sie das Ergebnis mit einem Klick in die Zwischenablage oder laden Sie es als .json-Datei herunter. ## Die wichtigsten Mapping-Regeln auf einen Blick | XML-Konstrukt | Beispiel XML | JSON-Ergebnis | | --- | --- | --- | | Element mit Text | Buch | "titel": "Buch" | | Attribut | | "@jahr": "2024" | | Text neben Attribut | 9 | { "@w": "EUR", "#text": "9" } | | Wiederholtes Element | | "tag": [ {}, {} ] | | Namespace-Präfix | | "soap:Body": { ... } | | Leeres Element | | "rabatt": null | ## Wann reicht das Online-Tool, wann brauchen Sie Code? Für einmalige Umwandlungen, schnelle Tests oder das Inspizieren einer fremden XML-Struktur ist das Browser-Tool die schnellste und datenschutzfreundlichste Lösung. Sobald die Konvertierung aber Teil eines automatisierten Ablaufs wird, lohnt sich eine Bibliothek im eigenen Code. In JavaScript sind xml2js und fast-xml-parser üblich, in Python xmltodict, in PHP die eingebaute SimpleXML-Erweiterung. ## Typische Fehler beim Umwandeln Die meisten Probleme entstehen nicht beim Konverter, sondern beim XML selbst. XML ist streng: Jedes öffnende Tag braucht ein schließendes, Tag-Namen sind groß- und kleinschreibungssensitiv, und es darf genau ein Wurzelelement geben. Ein zweiter Klassiker ist die Verwechslung von Einzelwert und Liste. Wer sein Mapping nur an einer Beispieldatei mit genau einem Eintrag testet, übersieht leicht, dass dasselbe Feld in der Praxis als Array auftaucht. ## Häufige Fragen **Wie wandle ich eine XML-Datei in JSON um?** Öffnen Sie den XML zu JSON Converter, fügen Sie Ihr XML in das linke Feld ein oder ziehen Sie die Datei per Drag-and-drop hinein und klicken Sie auf Konvertieren. Das gültige JSON erscheint sofort rechts. **Was ist der Unterschied zwischen XML und JSON?** XML ist eine Auszeichnungssprache mit öffnenden und schließenden Tags, Attributen und Namespaces und wurde 1998 vom W3C standardisiert. JSON ist ein schlankes, an JavaScript angelehntes Datenformat aus Objekten und Arrays, definiert in ECMA-404 und RFC 8259. **Werden meine XML-Daten beim Umwandeln hochgeladen?** Nein. Beim Browser-Tool von xml-json.de findet die gesamte Verarbeitung clientseitig in Ihrem Gerät statt. **Warum werden Zahlen aus XML im JSON als Text ausgegeben?** XML kennt keine Datentypen, jeder Wert ist dort reiner Text. Ein konservativer Konverter übernimmt Werte deshalb als String, um Datenverluste wie verlorene führende Nullen in Postleitzahlen zu vermeiden. --- # Ratgeber 2: XML vs. JSON: Unterschiede, Vor- und Nachteile **URL:** https://xml-json.de/ratgeber/xml-vs-json-unterschied/ **Autor:** Mateusz Viola ## Was ist XML? XML steht für Extensible Markup Language und wurde 1998 vom World Wide Web Consortium (W3C) standardisiert. Es ist eine Auszeichnungssprache: Daten werden in selbst definierte Tags eingebettet, ähnlich wie bei HTML, nur dass die Tag-Namen frei wählbar sind. Jedes Element hat ein öffnendes und ein schließendes Tag, kann Attribute tragen und beliebig tief verschachtelt werden. XML kennt außerdem Kommentare, Verarbeitungsanweisungen, Namespaces und mit XML Schema (XSD) eine formale Sprache, um die erlaubte Struktur und Datentypen verbindlich festzulegen. ## Was ist JSON? JSON steht für JavaScript Object Notation. Es entstand aus der Syntax für Objekte in JavaScript und wurde 2013 als ECMA-404 standardisiert, später präzisiert durch RFC 8259. JSON kennt nur eine kleine Zahl von Bausteinen: Objekte aus Schlüssel-Wert-Paaren, Arrays (geordnete Listen) sowie die Werttypen String, Zahl, Boolean und null. ## XML vs. JSON: Der direkte Vergleich | Eigenschaft | XML | JSON | | --- | --- | --- | | Typ | Auszeichnungssprache (Markup) | Datenformat (Objekt-Notation) | | Standardisiert seit | 1998 (W3C) | 2013 (ECMA-404, RFC 8259) | | Datentypen | Alles Text, Typen nur via XSD | String, Zahl, Boolean, null | | Attribute | Ja, eigenes Konzept | Nein, nur per Konvention | | Kommentare | Ja | Nein | | Namespaces | Ja | Nein | | Schema-Validierung | XSD, DTD, RELAX NG | JSON Schema (optional) | | Lesbarkeit für Menschen | Gut, aber geschwätzig | Sehr gut, kompakt | | Dateigröße | Größer (doppelte Tags) | Kleiner | | Parsing-Aufwand | Höher | Geringer, in JS nativ | | Typische Einsätze | SOAP, HL7, RSS, Office, Konfig | REST-APIs, Web-Frontend, Config | ## Vor- und Nachteile im Überblick JSON spielt seine Stärken aus bei: REST-APIs und der Kommunikation zwischen Frontend und Backend, kleiner Dateigröße und schnellem Parsing, direkter Nutzung in JavaScript ohne Mapping, einfachen, klar strukturierten Datensätzen. XML spielt seine Stärken aus bei: Dokumenten mit gemischtem Inhalt aus Text und Markup, strenger Validierung über XML Schema (XSD), etablierten Standards wie SOAP, HL7, RSS und XBRL, Metadaten über Attribute, Namespaces und Kommentare. ## Datentypen: die häufigste Stolperfalle JSON unterscheidet Strings von Zahlen, Booleans und null, XML kennt diese Unterscheidung nicht. In XML ist 42 reiner Text. Wandelt man das ohne Typinferenz nach JSON um, entsteht "preis": "42" mit Anführungszeichen, also ein String. ## Entscheidungshilfe: Wann XML, wann JSON? - Web-API oder mobile App: JSON. - Konfigurationsdatei für Entwickler: JSON, oder JSON5/YAML wenn Kommentare gebraucht werden. - Anbindung an SOAP, HL7, XBRL oder Behördenformate: XML, weil der Standard es vorgibt. - Dokumente mit Formatierung und gemischtem Inhalt: XML. - Strenge, verbindliche Validierung der Struktur: XML mit XSD ist hier ausgereifter. ## Häufige Fragen **Was ist der Hauptunterschied zwischen XML und JSON?** XML ist eine Auszeichnungssprache, die Daten mit öffnenden und schließenden Tags umschließt und zusätzlich Attribute, Kommentare und Namespaces kennt. JSON ist ein schlankes Datenformat aus Objekten und Arrays. **Ist JSON immer besser als XML?** Nein. JSON ist für Web-APIs meist die bessere Wahl, weil es kompakter und schneller zu parsen ist. XML bleibt überlegen, wenn gemischter Inhalt, Namespaces, Kommentare oder eine formale Schema-Validierung gebraucht werden. **Hat JSON Datentypen und XML nicht?** JSON unterscheidet von Haus aus zwischen String, Zahl, Boolean und null. In XML ist jeder Wert zunächst reiner Text. --- # Ratgeber 3: XML zu JSON Converter im Vergleich: Online-Tools, Bibliotheken und CLI **URL:** https://xml-json.de/ratgeber/xml-zu-json-converter-vergleich/ **Autor:** Jan-Tristan Rudat ## Drei Wege, ein Ziel: Online-Tool, Bibliothek oder CLI Die Umwandlung von XML nach JSON lässt sich auf drei grundverschiedenen Wegen lösen: mit einem Online-Tool im Browser, mit einer Programmierbibliothek im eigenen Code oder mit einem Befehl auf der Kommandozeile. Ein Online-Tool braucht keine Installation und ist nach Sekunden einsatzbereit. Eine Bibliothek integriert die Konvertierung in den eigenen Quellcode. Ein CLI-Werkzeug verbindet die Konvertierung mit der Mächtigkeit der Shell. Ein wichtiges Unterscheidungsmerkmal: Verlässt das XML das Gerät oder nicht? Server-basierte Online-Dienste laden die Datei hoch, bevor sie konvertieren. Clientseitige Tools, Bibliotheken und CLI-Werkzeuge arbeiten dagegen lokal. ## Online-Converter: schnell, aber mit Datenschutz-Fallstrick Online-Converter sind der häufigste Einstieg. Tools wie der Converter auf jsonformatter.org oder tableconvert.com arbeiten clientseitig. Andere, etwa CoolUtils, laden die Datei auf einen Server hoch und konvertieren dort. Unser eigenes Tool auf xml-json.de ist bewusst clientseitig gebaut: Die Konvertierung läuft vollständig über die XML-Engine des Browsers, das Dokument wird zu keinem Zeitpunkt an einen Server übertragen. ## Bibliotheken: xml2js, fast-xml-parser und xmltodict Im JavaScript- und Node.js-Umfeld dominieren zwei Pakete. xml2js ist der Klassiker: weit verbreitet, gut dokumentiert, standardmäßig asynchron. fast-xml-parser ist der modernere Herausforderer: spürbar schneller, ohne native Abhängigkeiten, synchron nutzbar. In der Python-Welt ist xmltodict der De-facto-Standard. Es bildet XML auf verschachtelte Dictionaries ab, die sich direkt mit json.dumps() serialisieren lassen. In PHP kombiniert man üblicherweise SimpleXML mit json_encode(). ## Kommandozeile: xq, jq und xmlstarlet Für Automatisierung in Shell-Skripten, CI-Pipelines oder Cron-Jobs ist die Kommandozeile unschlagbar. jq allein kann kein XML, es verarbeitet ausschließlich JSON. Die Brücke schlägt xq, das mit dem Paket yq kommt und XML einliest, in JSON wandelt und an jq durchreicht. ## Direktvergleich der Werkzeuge | Werkzeug | Typ | Daten bleiben lokal | Stärke | Am besten für | | --- | --- | --- | --- | --- | | xml-json.de | Online (clientseitig) | Ja | Kein Upload, kein Setup | Einmaliges Umwandeln, sensible Daten | | CoolUtils | Online (Server) | Nein (Upload) | Ausführlicher DE-Content | Unkritische Dateien bis 50 MB | | fast-xml-parser | JS-Bibliothek | Ja | Schnell, Validator, Builder | Node.js-Apps mit Performance-Bedarf | | xml2js | JS-Bibliothek | Ja | Etabliert, viele Beispiele | Bestandsprojekte, Callback-Stil | | xmltodict | Python-Bibliothek | Ja | Direkt zu dict, expat-schnell | Python-Skripte, Data-Pipelines | | xq + jq | CLI | Ja | Pipes, Automatisierung, CI | Shell-Skripte, Build-Pipelines | ## Häufige Fragen **Welcher XML zu JSON Converter ist der beste?** Es gibt keinen pauschal besten Converter. Für gelegentliches Umwandeln ist ein clientseitiges Online-Tool am schnellsten. Für wiederkehrende Konvertierungen lohnt sich eine Bibliothek. Für Automatisierung ist xq und jq auf der Kommandozeile die robusteste Wahl. **Sind Online-Converter für XML zu JSON sicher?** Das hängt von der Architektur ab. Server-basierte Tools laden Ihre Datei auf einen fremden Server hoch. Clientseitige Tools verarbeiten das XML direkt im Browser, sodass die Daten das Gerät nie verlassen. **Was ist der Unterschied zwischen xml2js und fast-xml-parser?** xml2js ist lange etabliert und arbeitet standardmäßig asynchron mit Callbacks oder Promises. fast-xml-parser ist neuer, deutlich schneller bei großen Dateien, arbeitet synchron und hat keine nativen Abhängigkeiten. --- # Ratgeber 4: XML zu JSON in JavaScript, Python und PHP: Code-Tutorial **URL:** https://xml-json.de/ratgeber/xml-zu-json-javascript-python-php/ **Autor:** Jan-Tristan Rudat ## Das Beispiel-XML für alle Sprachen Wir nutzen durchgehend folgendes Dokument mit einer ID als Attribut und zwei Positionen: ```xml Erika Mustermann Tastatur Maus ``` ## XML zu JSON in JavaScript JavaScript hat keine eingebaute XML-zu-JSON-Funktion. In der Praxis verwendet man eine der beiden etablierten Bibliotheken. ### fast-xml-parser (empfohlen) fast-xml-parser ist schnell, synchron und ohne native Abhängigkeiten: ```javascript // npm install fast-xml-parser import { XMLParser } from 'fast-xml-parser'; const parser = new XMLParser({ ignoreAttributes: false }); const obj = parser.parse(xml); // { "bestellung": { "kunde": "Erika Mustermann", "position": ["Tastatur", "Maus"], "@_id": "1042" } } ``` ### xml2js (etabliert) xml2js ist seit Jahren weit verbreitet und arbeitet asynchron: ```javascript // npm install xml2js import { parseStringPromise } from 'xml2js'; const obj = await parseStringPromise(xml); // Attribute landen in einem eigenen "$"-Objekt, Elemente werden als Array geparst ``` ## XML zu JSON in Python In Python ist xmltodict der pragmatische Standard. Es bildet XML auf verschachtelte Dictionaries ab: ```python # pip install xmltodict import json import xmltodict data = xmltodict.parse(xml) print(json.dumps(data, indent=2, ensure_ascii=False)) # { "bestellung": { "@id": "1042", "kunde": "Erika Mustermann", "position": ["Tastatur", "Maus"] } } ``` Wichtig ist ensure_ascii=False, sonst werden Umlaute als Unicode-Escape-Sequenzen ausgegeben. Die Einzel-Element-Falle: Hat die Bestellung nur eine Position, ist das Ergebnis ein einzelner String, kein Array. Lösung: xmltodict.parse(xml, force_list=("position",)). ## XML zu JSON in PHP In PHP führen simplexml_load_string und json_encode in zwei Zeilen zum Ziel: ```php $sxe = simplexml_load_string($xml); $json = json_encode($sxe, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); ``` Bekannte Schwäche: json_encode ignoriert bei SimpleXML standardmäßig die Attribute. Wer Attribute braucht, liest sie über attributes() explizit aus oder wechselt zu DOMDocument. ## Die drei Ansätze im direkten Vergleich | Bibliothek | Sprache | Attribut-Präfix | Einzel-Element | Besonderheit | | --- | --- | --- | --- | --- | | fast-xml-parser | JavaScript | @_ | Einzelwert | Schnell, synchron, keine Deps | | xml2js | JavaScript | $-Objekt | Array (Default) | Asynchron, sehr verbreitet | | xmltodict | Python | @ | Einzelwert | #text bei Mischinhalt | | SimpleXML + json_encode | PHP | ignoriert (!) | Array bei Wiederholung | Attribute gehen verloren | ## Häufige Fragen **Gibt es in JavaScript eine eingebaute Funktion, um XML in JSON umzuwandeln?** Nein. Im Browser steht der DOMParser zur Verfügung, der XML in einen DOM-Baum einliest. Diesen Baum muss man anschließend selbst in ein Objekt überführen. In der Praxis nimmt man dafür eine Bibliothek wie fast-xml-parser oder xml2js. **Wie behandelt xmltodict in Python wiederholte Elemente?** xmltodict fasst gleichnamige Geschwister-Elemente automatisch zu einer Liste zusammen. Kommt ein Element nur einmal vor, bleibt es ein einzelnes OrderedDict statt einer Liste. Mit force_list lässt sich erzwingen, dass bestimmte Tags stets als Liste erscheinen. --- # Ratgeber 5: XML-Attribute, Namespaces und Arrays nach JSON mappen **URL:** https://xml-json.de/ratgeber/xml-attribute-namespaces-arrays-json/ **Autor:** Eike-Christian Ramcke ## Warum XML und JSON nicht deckungsgleich sind XML ist eine Auszeichnungssprache mit einem reichhaltigen Datenmodell. Ein Element kann gleichzeitig Attribute, Kindelemente und Textinhalt tragen, es gibt Namespaces, geordnete Geschwister, Kommentare und CDATA-Abschnitte. JSON dagegen kennt nur sechs Bausteine: Objekt, Array, String, Zahl, Boolean und null. Es gibt keine Attribute, kein Namespace-System. Eine verlustfreie Abbildung von XML nach JSON ist nur möglich, wenn man die fehlenden Konzepte über Namenskonventionen in das JSON-Objektmodell kodiert. ## Attribute mit @-Präfix und #text abbilden Attribute sind der erste Knackpunkt. In XML hängen sie direkt am Element-Tag und unterscheiden sich syntaktisch klar von Kindelementen. In JSON gibt es diese Unterscheidung nicht. Damit Attribute nicht versehentlich mit gleichnamigen Kindelementen kollidieren, bekommen sie ein reserviertes Präfix, meist das At-Zeichen (@). Hat ein Element zugleich Attribute und Textinhalt, braucht der Text einen eigenen Platz, dafür gibt es eine zweite reservierte Eigenschaft, meist #text. Beispiel: ```xml USB-C Kabel 19.90 ``` Ergibt: ```json { "artikel": { "@id": "A-42", "@verfuegbar": "true", "name": "USB-C Kabel", "preis": { "@waehrung": "EUR", "#text": "19.90" } } } ``` ## Wiederholte Elemente als Arrays In XML ist es normal, dass dasselbe Element mehrfach unter einem Eltern-Element auftaucht. JSON drückt Wiederholung über Arrays aus. Das Problem: Kommt nur ein Element vor, erzeugt ein naiver Konverter ein einzelnes Objekt statt eines Arrays. Viele Bibliotheken bieten eine Option, bestimmte Pfade immer als Array auszugeben. ## Namespaces wie soap: und xsi: Da JSON kein Namespace-Konzept besitzt, übernimmt der Standardweg das vollständige qualifizierte Präfix einfach als Teil des Schlüssels. Aus wird der Schlüssel "soap:Envelope". Das ist verlustfrei und eindeutig. ## Badgerfish, Parker & Co. im Überblick | Konvention | Attribut | Textinhalt | Verlustfrei? | | --- | --- | --- | --- | | Badgerfish | @name | $ | Ja, inkl. Namespaces | | Parker | verworfen | direkter Wert | Nein, kompakt | | fast-xml-parser (Default) | @_name | #text | Ja, konfigurierbar | | xml2js (Node) | $.name | _ | Ja | | xmltodict (Python) | @name | #text | Ja | ## Datentypen und Typinferenz XML hat im Kern keine Datentypen, jeder Inhalt ist Text. Ein vorsichtiger Konverter übernimmt deshalb alle Werte zunächst als String. Aktivieren Sie Typinferenz nur, wenn Sie Ihre Daten kennen. ## Die häufigsten Stolperfallen 1. Reihenfolge geht verloren. JSON-Objekte garantieren keine Reihenfolge der Schlüssel. 2. Leere Elemente. wird je nach Tool zu null, leerem String oder leerem Objekt. 3. Mixed Content mit Markup. Text, der Inline-Elemente umschließt, lässt sich kaum verlustfrei in flaches JSON pressen. 4. Single-vs-Array-Inkonsistenz. Die wohl häufigste Quelle für Laufzeitfehler in nachgelagertem Code. 5. Namespace-Präfix als Bedeutungsträger missverstehen. Das Präfix ist austauschbar, nur die URI ist verbindlich. ## Häufige Fragen **Wie werden XML-Attribute in JSON dargestellt?** Attribute haben in JSON keine eigene Ebene, daher werden sie als gewöhnliche Eigenschaften in das Objekt des Elements aufgenommen. Die verbreitetste Konvention ist ein @-Präfix. **Wann werden wiederholte XML-Elemente zu einem Array?** Treten gleichnamige Kindelemente mehrfach unter demselben Eltern-Element auf, fasst der Konverter sie zu einem JSON-Array zusammen. **Wie werden XML-Namespaces wie soap: oder xsi: in JSON behandelt?** JSON kennt kein Namespace-Konzept. Standardmäßig wird das qualifizierte Präfix daher als reiner Bestandteil des Schlüssels übernommen, etwa "soap:Envelope". --- # Ratgeber 6: XML zu JSON und Datenschutz: DSGVO, SOAP und Standards **URL:** https://xml-json.de/ratgeber/xml-zu-json-datenschutz-dsgvo/ **Autor:** Eike-Christian Ramcke ## Lokal oder Server: Der entscheidende Unterschied für die DSGVO Bei der XML-zu-JSON-Konvertierung gibt es zwei grundverschiedene Architekturen. Bei einem clientseitigen Tool läuft die gesamte Umwandlung als JavaScript im Browser des Nutzers. Die XML-Daten werden eingefügt, lokal geparst und in JSON umgewandelt, ohne dass auch nur ein Byte an einen Server gesendet wird. Bei einem serverbasierten Dienst dagegen wird die Datei hochgeladen, auf einem fremden Server verarbeitet und das Ergebnis zurückgeschickt. Aus Sicht der Datenschutz-Grundverordnung ist das ein fundamentaler Unterschied. Verlassen personenbezogene Daten das Gerät nicht, findet keine Übermittlung an einen Dritten statt. Wandern die Daten dagegen auf einen fremden Server, liegt eine Verarbeitung durch einen Dritten vor, die eine Rechtsgrundlage nach Artikel 6 DSGVO und in aller Regel einen Auftragsverarbeitungsvertrag nach Artikel 28 DSGVO voraussetzt. ## Was die DSGVO konkret verlangt Sobald XML-Daten einen Personenbezug haben, greifen die Grundsätze aus Artikel 5 DSGVO. Die Datenminimierung verlangt, dass nicht mehr Daten verarbeitet werden als nötig, und dass Daten nicht unnötig an Dritte gelangen. Ein Werkzeug, das gar keine Daten erst überträgt, erfüllt den Grundsatz von Privacy by Design am wirksamsten. ## Die Risiken von Upload-basierten Online-Convertern Viele bekannte Online-Converter, darunter auch CoolUtils, arbeiten serverbasiert. Bei personenbezogenen oder sensiblen Inhalten entstehen konkrete Risiken. Nach dem Upload wissen Sie nicht, ob die Datei geloggt, in einem Cache abgelegt, an Subdienstleister weitergereicht oder in ein Drittland übertragen wird. ## SOAP zu REST: Warum die Migration nach JSON heute Standard ist SOAP-Nachrichten sind reines XML: Sie bestehen aus einem Envelope mit Header und Body und nutzen Namespaces wie soap: oder xsi:. Moderne Schnittstellen setzen dagegen fast durchgehend auf REST mit JSON. Beispiel einer SOAP-Antwort, die zu JSON wird: ```xml Erika Mustermann 25421 ``` Ergibt: ```json { "soap:Envelope": { "soap:Body": { "getKundeResponse": { "kunde": { "@id": "4711", "name": "Erika Mustermann", "plz": "25421" } } } } } ``` ## HL7, RSS und SVG: Sensible Standards richtig einordnen | Standard | Typischer Inhalt | Datenschutz-Einordnung | | --- | --- | --- | | SOAP | Webservice-Nachrichten, Bank- und Behördenschnittstellen | Oft personenbezogen, lokal verarbeiten | | HL7 / CDA | Klinische Dokumente, Befunde, Patientendaten | Gesundheitsdaten (Art. 9), höchste Schutzstufe | | RSS / Atom | Nachrichten-Feeds, Blog-Artikel | In der Regel öffentlich, unkritisch | | SVG | Vektorgrafiken | Meist unkritisch | | XBRL | Finanzberichte, Jahresabschlüsse | Vertraulich, teils personenbezogen | ## Praxis-Empfehlung Enthält das XML keinerlei Personenbezug, ist die Wahl des Tools datenschutzrechtlich zweitrangig. Sobald aber auch nur die Möglichkeit besteht, dass Namen, Kennnummern, Adressen, Vertrags- oder Gesundheitsdaten enthalten sind, gilt: nur lokal verarbeiten. ## Häufige Fragen **Ist es DSGVO-konform, XML mit personenbezogenen Daten in JSON umzuwandeln?** Das hängt vollständig davon ab, wo die Verarbeitung stattfindet. Bei einem clientseitigen Tool, das die Konvertierung im Browser ausführt, verlassen die Daten Ihr Gerät nicht. Bei Upload-basierten Online-Diensten dagegen werden die Daten an einen fremden Server übertragen, was eine Auftragsverarbeitung nach Artikel 28 DSGVO erfordert. **Brauche ich einen Auftragsverarbeitungsvertrag für ein Browser-Tool?** Nein. Ein Auftragsverarbeitungsvertrag nach Artikel 28 DSGVO ist nur nötig, wenn ein Dienstleister personenbezogene Daten in Ihrem Auftrag verarbeitet. Läuft die Umwandlung ausschließlich lokal im Browser, verarbeitet der Anbieter Ihre Daten nicht. **Kann ich SOAP-, HL7- oder RSS-Daten ohne Bedenken konvertieren?** Technisch ja, solange es sich um gültiges XML handelt. Datenschutzrechtlich kommt es auf den Inhalt an. HL7-Nachrichten enthalten häufig Gesundheitsdaten nach Artikel 9 DSGVO. Für solche Daten ist ein clientseitiges Tool die sichere Wahl. --- # Redaktion - Mateusz Viola, Autor und Content-Strategie: https://xml-json.de/autoren/mateusz-viola/ - Jan-Tristan Rudat, Entwickler und Redakteur: https://xml-json.de/autoren/jan-tristan-rudat/ - Eike-Christian Ramcke, Geschäftsführer AKARA Solutions GmbH, inhaltlich Verantwortlicher gem. § 18 Abs. 2 MStV: https://xml-json.de/autoren/eike-christian-ramcke/ # Hinweis Die Ausgabe folgt verbreiteten Mapping-Konventionen. Je nach eingesetzter Bibliothek können Detailaspekte (z. B. das Attribut-Präfix oder die Typinferenz) abweichen.