YAML to XML

Converteer YAML naar XML formaat

Probeer een voorbeeld

YAML Invoer

XML Uitvoer

Draait lokaal · Veilig om secrets te plakken
XML verschijnt hier…
Probeer ook:YAML to JSON

Wat is YAML naar XML-conversie?

YAML naar XML-conversie zet gegevens om die zijn geschreven in YAML (YAML Ain't Markup Language) naar XML (Extensible Markup Language). YAML gebruikt inspringing en minimale interpunctie om gestructureerde gegevens weer te geven, terwijl XML gebruikmaakt van openings- en sluitingstags met een expliciete hiërarchie. Converteren tussen de twee is een veelvoorkomende taak wanneer systemen die XML verwerken gegevens moeten ontvangen die oorspronkelijk in YAML zijn geschreven.

YAML is ontworpen voor menselijke leesbaarheid. Configuratiebestanden voor tools zoals Kubernetes, Ansible, Docker Compose en GitHub Actions zijn geschreven in YAML omdat het compact is en gemakkelijk met de hand te bewerken. XML, gedefinieerd door de W3C XML 1.0-specificatie, is al tientallen jaren het standaard gegevensuitwisselingsformaat in bedrijfssystemen, SOAP-webservices en documentgerichte workflows. Wanneer een YAML-configuratie moet worden ingevoerd in een XML-gebaseerde pipeline, is conversie vereist.

De koppeling tussen YAML en XML is niet één-op-één. YAML ondersteunt native gegevenstypen zoals booleans, gehele getallen, kommagetallen en null, terwijl XML alle inhoud als tekst behandelt tenzij een schema (XSD of DTD) typen extern definieert. YAML-reeksen (lijsten) hebben geen directe XML-equivalent en moeten worden weergegeven als herhaalde elementen. Kennis van deze verschillen helpt u de uitvoer te voorspellen en verrassingen te vermijden.

Waarom deze YAML naar XML-converter gebruiken?

YAML handmatig herschrijven als XML is tijdrovend en foutgevoelig, vooral bij diep geneste structuren. Deze converter verwerkt de structurele vertaling direct.

Directe conversie
Plak YAML en ontvang direct geformatteerde XML-uitvoer. Geen script schrijven of CLI-tool installeren voor eenmalige conversies.
🔒
Privacy-eerste verwerking
Alle conversie verloopt in uw browser. Uw YAML-gegevens, die vaak serveradressen, inloggegevens en infrastructuurdetails bevatten, verlaten uw apparaat nooit.
📋
Geen account vereist
Gebruik de converter zonder aan te melden, in te loggen of een e-mailadres op te geven. Open de pagina en begin met converteren.
🌐
Verwerkt geneste structuren
Ondersteunt diep geneste YAML-afbeeldingen, reeksen, gemengde typen en meerregelige tekenreeksen. De uitvoer bewaart de hiërarchie met correcte XML-inspringing.

Toepassingen van YAML naar XML-conversie

Front-endontwikkeling
Converteer YAML-mockgegevens naar XML-formaat voor het testen van XML-parsers, XSLT-transformaties of componenten die XML-reacties van API's verwachten.
Back-endintegratie
Transformeer YAML-configuratie naar XML bij integratie met verouderde Java-services die gebruikmaken van Spring XML-configuratie, Maven POM-bestanden of SOAP-eindpunten.
DevOps en CI/CD
Converteer Kubernetes- of Ansible YAML-manifests naar XML voor tools die XML-invoer vereisen, zoals Jenkins-pipelineconfiguraties of bepaalde monitorsystemen.
QA en testen
Genereer XML-testfixtures vanuit YAML-definities. YAML is makkelijker te onderhouden als testgegevens, en converteren naar XML tijdens het testen houdt fixtures leesbaar.
Data-engineering
Converteer YAML-opgemaakte ETL-configuraties of schemadefinities naar XML voor pipelines die XML verwerken. Gangbaar in de gezondheidszorg (HL7), financiën (FpML) en overheidsgegevenssystemen.
Leren en prototypen
Studenten en nieuwkomers kunnen YAML in de converter plakken en de equivalente XML-structuur naast elkaar zien, wat intuïtie opbouwt voor hoe hiërarchische gegevens tussen formaten worden omgezet.

Toewijzingsreferentie voor YAML- naar XML-typen

YAML-gegevenstypen worden niet rechtstreeks naar XML omgezet. De tabel hieronder toont hoe elke YAML-constructie vertaalt naar een XML-equivalent. Inzicht in deze regels helpt u de uitvoer te voorspellen en onverwachte resultaten op te lossen.

YAML-typeYAML-voorbeeldXML-uitvoer
Mapping (key: value){ name: Alice }<name>Alice</name>
Sequence (- item)- apple\n- banana<item>apple</item><item>banana</item>
Nested mappinguser:\n name: Alice<user><name>Alice</name></user>
Scalar (string)greeting: hello world<greeting>hello world</greeting>
Scalar (number)count: 42<count>42</count>
Scalar (boolean)active: true<active>true</active>
Nullvalue: null<value/>
Multiline stringbio: |\n Line one\n Line two<bio>Line one\nLine two</bio>

YAML versus XML: formaatverschillen

YAML en XML lossen hetzelfde probleem op — gestructureerde gegevensweergave — met verschillende afwegingen. Geen van beide is universeel beter; de juiste keuze hangt af van wie of wat de gegevens verwerkt.

YAML
Door witruimte begrensd, geen sluitingstags. Ondersteunt native typen (bool, int, float, null). Opmerkingen met #. Compact voor configuratie en handmatige bewerking. Verwerkt door bibliotheken zoals PyYAML, js-yaml en gopkg.in/yaml.
XML
Op tags gebaseerd met expliciete open/sluit-paren. Alle waarden zijn standaard tekst; typen vereisen een schema (XSD). Ondersteunt attributen, naamruimten, gemengde inhoud en verwerkingsinstructies. Verwerkt door de standaardbibliotheek van elke grote programmeertaal.
KenmerkYAMLXML
SyntaxisInspringing-gebaseerdOp tags gebaseerd (&lt;tag&gt;...&lt;/tag&gt;)
GegevenstypenNative (tekenreeks, int, bool, null, float)Alleen tekst (schema voegt typen toe)
Opmerkingen# inline opmerkingen<!-- blokopmerkingen -->
AttributenGeen native ondersteuningJa (&lt;tag attr="val"&gt;)
NaamruimtenNiet ondersteundJa (xmlns:prefix)
BestandsgrootteKleiner (geen sluitingstags)Groter (uitgebreide tags)

Codevoorbeelden

Hoe YAML programmatisch naar XML te converteren in verschillende talen en omgevingen:

JavaScript (Node.js)
import { parseDocument } from 'yaml'
import { js2xml } from 'xml-js'

const yamlStr = `
server:
  host: localhost
  port: 8080
  ssl: true
`

const data = parseDocument(yamlStr).toJSON()
const xml = js2xml({ root: data }, { compact: true, spaces: 2 })
console.log(xml)
// → <root>
// →   <server>
// →     <host>localhost</host>
// →     <port>8080</port>
// →     <ssl>true</ssl>
// →   </server>
// → </root>
Python
import yaml
import xml.etree.ElementTree as ET

yaml_str = """
database:
  host: db.example.com
  port: 5432
  credentials:
    user: admin
    password: secret
"""

data = yaml.safe_load(yaml_str)

def dict_to_xml(tag, d):
    elem = ET.Element(tag)
    for key, val in d.items():
        child = ET.SubElement(elem, key)
        if isinstance(val, dict):
            child.extend(dict_to_xml(key, val))
            elem.remove(child)
            elem.append(dict_to_xml(key, val))
        else:
            child.text = str(val)
    return elem

root = dict_to_xml('root', data)
ET.indent(root, space='  ')
print(ET.tostring(root, encoding='unicode'))
# → <root>
# →   <database>
# →     <host>db.example.com</host>
# →     <port>5432</port>
# →     ...
# →   </database>
# → </root>
Go
package main

import (
    "encoding/xml"
    "fmt"
    "gopkg.in/yaml.v3"
)

type Server struct {
    XMLName xml.Name `xml:"server"`
    Host    string   `yaml:"host" xml:"host"`
    Port    int      `yaml:"port" xml:"port"`
    SSL     bool     `yaml:"ssl"  xml:"ssl"`
}

func main() {
    yamlData := []byte("host: localhost\nport: 8080\nssl: true")

    var s Server
    yaml.Unmarshal(yamlData, &s)

    xmlBytes, _ := xml.MarshalIndent(s, "", "  ")
    fmt.Println(xml.Header + string(xmlBytes))
    // → <?xml version="1.0" encoding="UTF-8"?>
    // → <server>
    // →   <host>localhost</host>
    // →   <port>8080</port>
    // →   <ssl>true</ssl>
    // → </server>
}
CLI (yq + xq)
# Using yq (YAML processor) with xq (XML wrapper around jq)
# Install: pip install yq

# Convert YAML file to XML
yq -x . config.yaml
# → <host>localhost</host><port>8080</port>

# Pipe inline YAML through conversion
echo "name: Alice" | yq -x .
# → <name>Alice</name>

Veelgestelde vragen

Kunnen YAML-reeksen worden weergegeven in XML?
Ja, maar XML heeft geen native lijsttype. YAML-reeksen worden doorgaans omgezet naar herhaalde XML-elementen met dezelfde tagnaam. Een YAML-lijst onder de sleutel "items" wordt bijvoorbeeld meerdere &lt;item&gt;-onderliggende elementen. Sommige converters wikkelen ze in een bovenliggend &lt;items&gt;-element voor de duidelijkheid.
Wat gebeurt er met YAML-opmerkingen tijdens de conversie?
YAML-opmerkingen (regels die beginnen met #) worden verwijderd tijdens de conversie. De meeste YAML-parsers verwijderen opmerkingen bij het opbouwen van de gegevensstructuur, waardoor ze niet beschikbaar zijn voor de XML-uitvoer. Als u opmerkingen wilt bewaren, hebt u een YAML-parser nodig die ze bewaart, zoals ruamel.yaml in Python.
Hoe worden YAML-ankers en aliassen verwerkt?
YAML-ankers (&naam) en aliassen (*naam) worden vóór de conversie opgelost. De parser breidt aliassen uit naar hun volledige waarden, zodat de resulterende XML de volledige gegevens bevat zonder ankerreferenties. Dit betekent dat de XML-uitvoer groter kan zijn dan de YAML-invoer als ankers werden gebruikt om herhaling te vermijden.
Is de conversie omkeerbaar (XML terug naar YAML)?
Gedeeltelijk. U kunt XML naar YAML converteren, maar het resultaat komt mogelijk niet exact overeen met de oorspronkelijke YAML. XML-attributen hebben geen YAML-equivalent en worden doorgaans weergegeven als speciale sleutels (bijv. @attribuut). Type-informatie gaat ook verloren omdat XML alles als tekst behandelt, waardoor getallen en booleans in de oorspronkelijke YAML tekenreeksen worden na een retourconversie.
Hoe verwerk ik XML-attributen bij het converteren vanuit YAML?
YAML heeft geen native concept van attributen. Een gebruikelijke conventie is het voorvoegsel @ aan sleutels toe te voegen om aan te geven dat ze XML-attributen moeten worden in plaats van onderliggende elementen. Zo zou "@id: 42" onder een afbeelding &lt;element id="42"&gt; produceren. Deze conventie wordt gebruikt door bibliotheken zoals xml-js en xmltodict.
Wat is de maximale YAML-bestandsgrootte die deze tool aankan?
De converter draait in uw browser, dus de limiet is afhankelijk van het beschikbare geheugen van uw apparaat. Bestanden tot een paar megabyte converteren zonder problemen op moderne hardware. Voor zeer grote bestanden (50 MB+) gebruikt u een opdrachtregeltool zoals yq of een Python-script met PyYAML en lxml, die streaming en geheugen efficiënter verwerken.
Waarom produceert mijn YAML ongeldige XML-uitvoer?
De meest voorkomende oorzaak zijn YAML-sleutels die geen geldige XML-elementnamen zijn. XML-elementnamen mogen niet beginnen met een cijfer, spaties bevatten of de meeste speciale tekens gebruiken. Sleutels zoals "2e-item" of "mijn sleutel" produceren ongeldige XML. Hernoem de betreffende sleutels of gebruik een converter die namen automatisch opschoont (bijv. spaties vervangen door underscores en een underscore toevoegen aan namen die beginnen met een cijfer).