YAML en XML
Transformez du YAML en document XML ; les clés qui commencent par « @ » deviennent des attributs et les listes des balises répétées
Vos données restent chez vous. La conversion se fait dans le navigateur ; rien n'est envoyé à un serveur.
Cet outil a-t-il fait le travail ?
Merci, votre retour nous est bien parvenu.
Comment ça marche
Vous avez du YAML — un application.yml, un fichier de variables Ansible ou un exemple d'API — et un système qui n'accepte que le XML ? Collez le YAML dans le panneau de gauche : le XML apparaît aussitôt à droite. Si le YAML commence par une seule clé de premier niveau, elle devient l'élément racine : un texte qui commence par « commande: » donne un document <commande>. S'il y a plusieurs clés de premier niveau ou une liste en tête, tout est enveloppé dans le nom indiqué dans la case « Nom de l'élément racine » (root par défaut), car XML n'accepte qu'une racine. Une clé qui commence par @ devient un attribut ("@num": 1024 → <commande num="1024">) et une clé « #text » devient le texte de l'élément. Ce sont les règles inverses du convertisseur XML vers YAML : un document qui fait l'aller-retour entre les deux outils reste identique. Une liste devient une balise répétée : deux entrées sous article donnent deux <article>. Une valeur vide (« note annulation: ») donne un élément vide <note_annulation/>. Un nom invalide en XML (espace, chiffre au début) n'est pas cassé en silence : il est adapté avec un tiret bas et la ligne de résultat indique chaque changement. Les valeurs gardent leur écriture : 1.10 ne devient pas 1.1.
Cet outil est aussi connu sous le nom de convertir yaml en xml, yaml en xml, yaml to xml, convertisseur yaml xml, yml en xml.
Qu'est-ce que Liste YAML ?
En YAML, une liste est une suite de lignes à la même indentation qui commencent chacune par « - » ; une ligne comme « - ref: MA-11 » montre que l'entrée est elle-même un mappage. On peut aussi l'écrire sur une ligne avec des crochets : [a, b]. XML ne connaît pas de liste sans nom ; des balises de même nom à la suite jouent ce rôle. La liste sous « article: » devient donc une série de balises <article>, une par entrée.
Qu'est-ce que Élément racine XML ?
L'élément racine est l'unique balise extérieure qui contient toutes les données d'un document XML : <commande> … </commande>. XML refuse deux racines ; écrire côte à côte plusieurs clés YAML de premier niveau produirait un fichier qu'aucun programme n'ouvre. L'outil fait donc d'une clé unique la racine, ou enveloppe tout dans le nom de la case. Si le système de destination attend une racine précise, comme Order, saisissez-la.
Quelle est la différence entre YAML et XML ?
YAML montre la structure par l'indentation, reste court et facile à modifier à la main ; l'analyseur devine le type des valeurs sans guillemets (nombre, true, null). XML place chaque valeur entre des balises, peut porter des attributs, se valide avec un schéma (XSD) et n'a pas de types : tout est texte. Rien ne se perd du YAML vers le XML, mais deux notions XML demandent une écriture YAML : « @ » pour les attributs et « #text » pour le texte mixte. Les échanges entre systèmes demandent souvent du XML ; la configuration vit en YAML.
Quelle structure YAML donne quel XML
L'outil écrit le YAML avec les règles inverses du convertisseur XML vers YAML, pour qu'un document reste le même dans les deux sens. Un mappage (clé: valeur) devient des éléments enfants, une liste des balises sœurs répétées, une clé en @ un attribut et « #text » le texte de l'élément. Une liste dans une liste est enveloppée dans des balises <item>, car XML n'a pas de liste sans nom.
La règle de la racine : XML exige un seul élément extérieur. Si le YAML commence par une seule clé de premier niveau (dont la valeur n'est pas une liste), cette clé devient la racine, et la ligne de résultat le signale. Sinon, le nom de la case « Nom de l'élément racine » est utilisé ; une liste en tête est écrite en balises <item>.
- "@num": 1024 → <commande num="1024">
- article: [ {ref: MA-11}, {ref: MA-42} ] → deux balises <article>
- note annulation: (vide) → <note_annulation/>
- "#text": Bonjour → texte de l'élément : <note>Bonjour</note>
Le piège : les valeurs qu'un analyseur YAML transforme en nombres
Un analyseur YAML courant transforme 1.10 sans guillemets en 1.1, un numéro 0612 en 612 et 1e3 en 1000 ; une fois écrit en XML, l'original est perdu. Cet outil ne considère une valeur comme un nombre que si son écriture ne change pas : 1.10, 0612, 1e3 et 2026-09-27 sortent dans le XML exactement comme dans le YAML. XML n'a de toute façon pas de types, chaque valeur est du texte.
Ce qui n'est pas pris en charge est signalé plutôt qu'ignoré : ancres et alias (&nom, *nom), balises de type (!!str), clés complexes commençant par ?, et plusieurs documents dans le texte (un second ---) donnent une erreur avec le numéro de ligne. Les erreurs d'indentation aussi ; YAML n'accepte pas la tabulation pour indenter.
Questions fréquentes
Comment convertir un fichier YAML en XML ?
Ouvrez le fichier .yml ou .yaml dans un éditeur de texte, copiez son contenu et collez-le dans le panneau de gauche de cette page. Le XML s'affiche aussitôt à droite ; copiez-le ou téléchargez-le en .xml. Si le YAML contient une erreur, le message donne le numéro de ligne et la cause.
Comment écrire un attribut XML en YAML ?
Placez @ devant le nom de la clé et écrivez-la entre guillemets : "@num": 7. L'outil la transforme en attribut num="7". Si l'élément a besoin d'un attribut et d'un texte, mettez le texte sous « #text » : note: {"@langue": fr, "#text": Bonjour} → <note langue="fr">Bonjour</note>.
Pourquoi la case du nom de racine est-elle parfois ignorée ?
Si le YAML commence par une seule clé de premier niveau (par exemple seulement « commande: »), cette clé est déjà l'élément racine et la case est inutile ; la ligne de résultat le précise. Le nom de la case sert quand le YAML commence par plusieurs clés ou par une liste, car XML exige un seul élément extérieur.
Mes données sont-elles envoyées à un serveur ?
Non. La lecture du YAML et l'écriture du XML se font entièrement dans votre navigateur ; les mots de passe ou adresses de votre configuration ne quittent pas cette page. Une fois chargée, la page fonctionne aussi hors connexion.