Formateur XML
Collez du XML et il se met en page — texte et attributs restent intacts.
XML formaté
Mode d’emploi
- Collez votre XML dans la zone — il est formaté au fil de la frappe, aucun bouton à cliquer.
- Choisissez Formater ou Minifier, et 2 ou 4 espaces pour l’indentation ; le résultat s’actualise immédiatement.
- Si la structure est cassée, le message indique la ligne, la colonne et l’élément. Copiez le résultat ou téléchargez-le sous forme de fichier .xml.
Exemple
Saisie
<commande id="A-1042"><client><nom>Ada Lovelace</nom><email>ada@example.com</email></client><articles><article sku="X-1" qte="2">Engrenage de machine analytique</article><article sku="X-2" qte="1">Jeu de cartes perforées</article></articles></commande>
Formaté
<commande id="A-1042"> <client> <nom>Ada Lovelace</nom> <email>ada@example.com</email> </client> <articles> <article sku="X-1" qte="2">Engrenage de machine analytique</article> <article sku="X-2" qte="1">Jeu de cartes perforées</article> </articles> </commande>
Règles par défaut uniquement : un élément par ligne, deux espaces par niveau. L’ordre des attributs, les guillemets et les valeurs restent intacts, tout comme le texte à l’intérieur de <nom>.
Règles, limites et problèmes connus
- Vérification de structure uniquement : appariement des balises, guillemetage/duplication/séparation des attributs, noms d’éléments et d’attributs, syntaxe des entités. Pas de validation DTD ou XSD, pas d’expansion d’entités, pas de vérification de liaison des préfixes d’espace de noms.
- Seuls les espaces structurels sont réécrits — les espaces entre attributs et ceux qui composent un élément sans texte. L’ordre des attributs, le style de guillemets, les valeurs, les entités, les commentaires, CDATA et le sous-ensemble interne de la DOCTYPE sont copiés caractère par caractère.
- Le contenu mixte n’est jamais réindenté : dans <p>Bonjour <b>tout le monde</b> !</p>, l’espacement est conservé tel que saisi, car ajouter des sauts de ligne modifierait le texte. Il en va de même pour xml:space="preserve", copié mot pour mot.
- Les éléments vides conservent la forme que vous avez saisie : <a></a> n’est pas réduit à <a/>, et <a/> n’est pas développé. Les attributs ne sont pas triés et les guillemets ne sont pas unifiés.
- La minification supprime uniquement les espaces structurels. Les espaces du texte, les commentaires, CDATA et la DOCTYPE sont conservés — rien n’est retiré de votre contenu.
- Une balise, un commentaire, CDATA ou une DOCTYPE non fermé tout à la fin de la saisie est signalé comme un avertissement, pas comme une erreur : vous obtenez tout de même un résultat. Les vraies erreurs (balises non appariées, valeurs d’attribut sans guillemets, « & » isolé) sont des erreurs avec ligne et colonne.
- Un fragment (plusieurs éléments de premier niveau, ou du texte hors de la racine) est formaté et signalé comme fragment. Une saisie sans aucun élément est une erreur.
- Les numéros de ligne et de colonne comptent les points de code Unicode : un émoji occupe donc une colonne. Seuls l’espace, la tabulation, le saut de ligne et le retour chariot comptent comme espaces ; U+3000 ou U+00A0 dans le texte est du contenu et n’est jamais supprimé.
- Pas de HTML : les balises fermantes omises comme </li> ou <br> sont signalées comme non fermées. Pas d’envoi de fichier, pas de paramètres d’URL, pas d’historique, pas de vue arborescente, pas de conversion XML→JSON. Tout s’exécute dans votre navigateur : rien n’est envoyé ni stocké.
- Au-delà de 200 000 caractères, le résultat s’actualise environ 0,6 s après l’arrêt de la frappe ; le texte n’est jamais tronqué. La sortie utilise LF et ne se termine pas par un saut de ligne ; le formatage est idempotent.
Outils associés
Ce dont on a généralement besoin ensuite, une fois la structure lisible.