YAML zu XML
Dieser Konverter rendert YAML-Zuordnungen und -Sequenzen als XML in Ihrem Browser. Zuordnungen werden zu verschachtelten Elementen, Sequenzen zu wiederholten Elementen und skalare Werte zu Textinhalt, wobei Schlüssel zu gültigen Tag-Namen bereinigt und Text gemäß XML 1.0 maskiert wird. Ein mit @ beginnender Schlüssel wird zu einem Attribut. Es wird nichts hochgeladen.
YAML zu XML erklärt
YAML und XML drücken beide Bäume aus, weshalb die Konvertierung hauptsächlich ein Vokabelwechsel ist: eine Zuordnung wird zu einem Element mit untergeordneten Elementen, eine Sequenz zu einem wiederholten Element und ein Skalar zu Textinhalt. Die eine Sache, die YAML nicht ausdrücken kann, ist ein Root-Elementname – ein XML-Dokument benötigt genau eines –, daher liefert der Konverter <root> als Dokumentelement und verschachtelt Ihr Dokument darin. Eine Liste oberster Ebene wird zu <root>, das ein wiederholtes Element pro Element enthält; eine Zuordnung oberster Ebene behält ihre Schlüssel als Elementnamen eine Ebene tiefer.
Die strikte Seite des Abkommens sind XMLs Namensregeln, und der Konverter erzwingt diese, anstatt hoffnungsvoll zu sein: jeder Schlüssel wird zu einem gültigen Tag-Namen, wobei Zeichen außerhalb des erlaubten Satzes durch Unterstriche ersetzt und ein führender Unterstrich hinzugefügt wird, wo ein Name mit einer Ziffer beginnen würde. Text wird bei der Ausgabe gemäß XML 1.0 maskiert – &, < und > im Inhalt, plus das doppelte Anführungszeichen innerhalb von Attributwerten –, sodass jeder standardkonforme Parser das Ergebnis lesen kann. Werte werden als ihre exakten Zeichen übernommen; es gibt keinen numerischen Umwandlungsschritt, der eine Portnummer oder eine Versionszeichenkette falsch interpretieren könnte.
Alles läuft in diesem Browser-Tab. Das YAML wird von einer Seiteneinheit analysiert und das XML wird aus dem analysierten Dokument serialisiert; nichts berührt ein Netzwerk – öffnen Sie DevTools, beobachten Sie, wie das Netzwerkpanel schweigt, und der Datenschutzanspruch bestätigt sich selbst.
Die Überprüfung der Rückkonvertierung erfordert nur ein Einfügen, weil der XML zu YAML-Konverter die @- und #text-Konventionen in umgekehrter Richtung wieder einliest.
Wenn die Eingabeseite das schwache Glied ist – Einrückung, Anführungszeichen, Typinferenz – dann behandelt die YAML-Grundlagen-Anleitung die Regeln, die dieser Parser erwartet.
Wie die Konvertierung tatsächlich funktioniert
Das Dokument wird einmal in einfache Daten analysiert, und der XML-Writer sieht nur diese Daten – nie den Originaltext. Diese Trennung ist es, die die folgenden Regeln vorhersagbar macht: der Writer kann nicht durch YAML-Syntax überrascht werden, und der Parser kann nicht durch das Aussehen des XML beeinflusst werden. Jede Stufe hat nur eine Aufgabe und einen Ausgabewert.
- Analysieren: Das YAML wird in Zuordnungen, Sequenzen und Skalare gelesen – der alltägliche Kern, mit erlaubten Kommentaren und Ankern oder Aliasen außerhalb des unterstützten Satzes.
- Umschließen: Das Dokument wird in ein einziges <root>-Element platziert, weil XML genau ein Root-Element erfordert und YAML keinen Namen dafür anzubieten hat.
- Rendern: Zuordnungen verschachteln sich als untergeordnete Elemente, Sequenzen werden zu wiederholten Elementen, und skalare Werte werden zum Textinhalt des Elements, das nach ihrem Schlüssel benannt ist.
- Maskieren und einrücken: Text erhält die drei obligatorischen XML-Maskierungen, Attribute zusätzlich maskieren Anführungszeichen, und das Dokument wird mit zwei Leerzeichen pro Ebene formatiert.
Die Tag-Namen-Politik, präzise
XML-1.0-Namen können mit einem Buchstaben, Unterstrich oder Doppelpunkt beginnen und können mit Ziffern, Bindestrichen, Punkten und Doppelpunkten fortgesetzt werden; alles andere ist nicht erlaubt. YAML-Schlüssel sind freier als das, daher wird jeder Schlüssel überprüft und repariert: ein Leerzeichen wird zu einem Unterstrich, eine führende Ziffer erhält einen führenden Unterstrich, und ein bereits gültiger Schlüssel – einschließlich Bindestrichschreibweise wie content-type – bleibt unberührt. Insbesondere ist ein Punkt ein gültiges Zeichen innerhalb eines XML-Namens, sodass ein Schlüssel wie address.city hier zu einem Element namens address.city wird, nicht zu einem verschachtelten Paar; die Verschachtelung wird durch die YAML-Struktur selbst ausgedrückt, nicht durch Zeichensetzung im Schlüssel.
| YAML-Schlüssel | Ausgegebenes Element | Warum |
|---|---|---|
| role | <role> | bereits gültig – unverändert übernommen |
| first name | <first_name> | Leerzeichen durch Unterstrich ersetzt |
| 2fa | <_2fa> | Namen dürfen nicht mit einer Ziffer beginnen |
| content-type | <content-type> | Bindestriche sind in XML-Namen erlaubt |
Attribute, Text und die @-Konvention
YAML hat Zuordnungen, wo XML Attribute hat, und die Brücke ist dieselbe Konvention, die der XML-zu-YAML-Konverter der Seite umgekehrt verwendet: ein Schlüssel, der mit @ beginnt, wird zu einem Attribut seines Elements, und der spezielle #text-Schlüssel trägt den eigenen Text des Elements, wenn es auch Attribute oder untergeordnete Elemente hat. Ein Eintrag, der als {"@id": bk101, "#text": A guide} geschrieben ist, wird bei Platzierung unter einem book-Schlüssel zu <book id="bk101">A guide</book>. Die Konvention ist optional – normale Schlüssel und Werte benötigen keine davon –, aber sie bedeutet, dass die volle Oberfläche von XML aus einfachen YAML-Daten ohne eine zweite Syntax erreichbar ist.
- @sku: A-1 wird zum Attribut sku="A-1" am umschließenden Element.
- #text enthält den eigenen Text eines Elements, sodass Attribute und Inhalt ohne Kollision koexistieren können.
- Ein null-Wert wird vollständig weggelassen; eine leere Zeichenkette wird zu einem selbstschließenden Element, weil die beiden in YAML unterschiedlich sind und die Ausgabe das respektiert.
- Zahlen und Boolesche Werte werden zu Zeichenketten umgewandelt – 8080 kommt als Text 8080, true als Text true an.
Kanten, die der Konverter nicht überbrücken wird
Drei Eingaben erhalten benannte Fehler oder explizites, dokumentiertes Verhalten anstelle eines Achselzuckens. YAML-Funktionen, die dieser Parser bewusst nicht unterstützt – Anker und Aliase, Merge-Schlüssel, Direktiven – werden mit einem Fehler abgelehnt, anstatt halb implementiert zu werden, weil ein Konverter, der bei der Anchor-Expansion raten würde, erfundenen Inhalt erzeugt. Ein mehrdokumentarer Stream wird unter Verwendung seines letzten Dokuments konvertiert, hier dokumentiert anstatt dem Zufall überlassen. Und ein Dokument, das nur ein Skalar ist, wird trotzdem konvertiert: es wird zum Text innerhalb von <root>.
- Anker, Aliase und Merge-Schlüssel: werden mit einem benannten Fehler abgelehnt, nicht durch Raten erweitert.
- Mehrdokument-Streams: das letzte Dokument gewinnt, und das Verhalten ist hier dokumentiert, anstatt durch Zufall entdeckt zu werden.
- Zur Einrückung verwendete Tabulatoren: werden zur Parse-Zeit abgelehnt, gemäß YAMLs eigenen Regeln.
Häufig gestellte Fragen
Lädt die Konvertierung von YAML zu XML meine Datei irgendwo hoch?
Nein. Parsing und XML-Generierung laufen beide in diesem Browser-Tab mit JavaScript, das beim Öffnen der Seite einmal geladen wurde. Es gibt keine API-Route, an die Daten gesendet werden könnten, und die Content-Security-Policy der Seite setzt connect-src 'self', sodass der Browser selbst jede ausgehende Anfrage ablehnen würde. Sie können beide Behauptungen in DevTools überprüfen: das Netzwerkpanel zeigt beim Konvertieren keine Anfrage.
Warum ist mein XML in einem <root>-Element eingeschlossen?
XML erfordert genau ein Root-Element, und YAML bietet keinen Namen dafür – eine YAML-Datei ist nur Daten. Der Konverter liefert daher <root> als Dokumentelement: eine Sequenz oberster Ebene wird zu <root> mit einem wiederholten Element pro Element, und eine Zuordnung oberster Ebene behält ihre Schlüssel als untergeordnete Elemente eine Ebene tiefer. Wenn Sie einen anderen Root-Namen benötigen, platzieren Sie Ihre Daten unter diesem Schlüssel im YAML, und er wird zum von Ihnen benannten Element.
Wie werden YAML-Schlüssel in gültige XML-Tag-Namen umgewandelt?
Jeder Schlüssel wird gegen die XML-1.0-Namensregeln überprüft und nur dort bereinigt, wo er fehlschlägt: Zeichen außerhalb von Buchstaben, Ziffern, Unterstrich, Bindestrich, Punkt und Doppelpunkt werden zu Unterstrichen, und ein Name, der mit einer Ziffer beginnt, erhält einen führenden Unterstrich. Bereits gültige Schlüssel bleiben unberührt. Ein Punkt ist innerhalb eines XML-Namens gültig, daher wird address.city zu einem einzigen Element dieses Namens – die Verschachtelung kommt von der YAML-Struktur, nicht von Punkten in Schlüsseln.
Kann YAML XML-Attribute und Textinhalt erzeugen?
Ja, über die @-Konvention: ein Schlüssel, der mit @ beginnt, wird zu einem Attribut seines Elements, und der reservierte #text-Schlüssel trägt den eigenen Text des Elements. Das Schreiben von "@id": bk101 unter einem book-Schlüssel ergibt <book id="bk101">, und das Hinzufügen von "#text": A guide setzt Text hinein. Es ist dieselbe Konvention, die der XML-zu-YAML-Konverter der Seite ausgibt, sodass ein Dokument in beide Richtungen Formate wechseln kann, ohne etwas manuell umzubenennen.
Was macht der Konverter mit Zahlen, booleschen Werten und leeren Werten?
Skalare werden zu Zeichenketten umgewandelt, weil XML-Text keine Typen hat: 8080 wird zum Text 8080 und true zum Text true, ohne Formatierungsänderungen. Ein null-Wert erzeugt kein Element, während eine leere Zeichenkette ein selbstschließendes Element erzeugt – der Unterschied, den YAML macht, wird in der Ausgabe beibehalten. Text wird bei der Ausgabe maskiert (&, <, >, und " innerhalb von Attributen), sodass Parser genau die Zeichen zurücklesen, die Sie geschrieben haben.
Welche YAML-Funktionen unterstützt der Parser?
Den alltäglichen Kern: Zuordnungen, Sequenzen, einfache und in Anführungszeichen gesetzte Skalare, Kommentare und die üblichen Skalartypen. Anker und Aliase, Merge-Schlüssel und Direktiven sind außerhalb des unterstützten Satzes und werden mit einem benannten Fehler abgelehnt, anstatt geraten zu werden – stille Anchor-Expansion würde erfundenen Inhalt erzeugen, der nie in Ihrer Datei war. Bei einem mehrdokumentaren Stream wird das letzte Dokument konvertiert, was die Seite dokumentiert, anstatt es dem Zufall zu überlassen.
Welche verwandten Tools sollten Sie als Nächstes nutzen?
- XML zu YAMLKonverter – läuft in Ihrem BrowserÖffnen
- YAML-GrundlagenLeitfaden in verständlicher SpracheÖffnen
- JSON vs. XMLDirekter VergleichÖffnen
- JSON in XML umwandelnMit Attributen und Namen, die XML akzeptiertÖffnen
- XML in JSON umwandelnUmwandeln, ohne Attribute oder Ein-Element-Listen zu verlierenÖffnen
- JSON formatierenEinrückung und Sortierung einstellen, Kommentare entfernenÖffnen