Formateur et validateur XML
Collez du XML, formatez avec une indentation correcte, ou validez la syntaxe. Gère attributs et espaces de noms. Sans upload.
- Collez votre XML dans la zone de texte de gauche.
- Cliquez sur Formater pour faire un aller-retour par fast-xml-parser et produire du XML indenté.
- Cliquez sur Valider pour vérifier la well-formedness sans modifier l'entrée.
- Les erreurs indiquent la position fautive dans le document.
Que fait-il ?
Parse le XML avec fast-xml-parser et le ré-émet avec une indentation cohérente. L'ordre des attributs au sein de chaque élément est préservé ; l'imbrication des éléments est préservée exactement. Le contenu mixte (texte + éléments enfants) et les namespaces (prefix:tag) sont conservés intacts. La sortie est du XML well-formed — mais well-formed n'est pas synonyme de valide (la validité nécessite un schéma ou DTD, que cet outil ne vérifie pas).
Exemple
Entrée XML désordonnée :
<root version="1"><name>Ada</name><tags>math</tags><tags>logic</tags></root> Sortie formatée :
<root version="1">
<name>Ada</name>
<tags>math</tags>
<tags>logic</tags>
</root> Erreurs XML courantes et comment les corriger
Les règles de well-formedness XML sont plus strictes que HTML. Les motifs ci-dessous couvrent la plupart des échecs du parser.
- Balise non fermée. `<a><b></a>` est invalide — `<b>` doit être fermée (`<b/>` ou `</b>` quelque part). XML n'autorise pas les balises de fermeture optionnelles à la HTML.
- Casse non concordante. XML est sensible à la casse — `<Foo></foo>` sont deux noms de balise différents. Faites correspondre la casse exactement.
- Caractères spéciaux non échappés. Un `<`, `>`, `&` ou un guillemet littéral dans du texte ou une valeur d'attribut doit être échappé : `<`, `>`, `&`, `"`. Encadrez les données contenant ces caractères avec CDATA : `<![CDATA[...]]>`.
- Plusieurs racines. XML exige exactement un élément racine. `<a/><b/>` au niveau supérieur est invalide — encadrez-les : `<root><a/><b/></root>`.
- Nom d'élément invalide. Les noms d'éléments ne peuvent commencer par un chiffre, contenir des espaces, ou utiliser les caractères réservés (`< > & " \\\'`). Les noms commençant par `xml` (toute casse) sont réservés par la spécification.
- Guillemets non concordants autour d'attributs. `<a name="value\\\'>` mélange guillemets doubles et simples. Choisissez un style cohérent par attribut. L'un ou l'autre est du XML valide.
Questions fréquentes
Le formatage change-t-il mes données ?
Seulement le whitespace entre éléments. L'ordre des éléments, l'ordre des attributs, les valeurs d'attributs, le contenu textuel et l'encadrement CDATA sont préservés. La forme auto-fermante (`<x/>`) et la forme explicite (`<x></x>`) peuvent se normaliser.
Les commentaires XML sont-ils préservés ?
fast-xml-parser supprime les commentaires par défaut. Si vous avez besoin d'un formatage préservant les commentaires, utilisez un autre outil (la transformation identité XSLT, par exemple, ou `xmllint --format`).
Cela valide-t-il contre un schéma ?
Non. Cela vérifie uniquement la well-formedness — que le document parse comme XML syntaxiquement valide. La validation de schéma (XSD, DTD, RelaxNG) est une étape distincte qui requiert le schéma en entrée supplémentaire.
Comment les namespaces sont-ils gérés ?
Les préfixes de namespace sont conservés dans le nom de l'élément (`x:foo`). Les déclarations de namespace par défaut et les liaisons de préfixes sont préservées comme attributs. Le traitement namespace-aware (résolution d'URI) n'est pas effectué.
Mon XML est-il téléchargé ?
Non. Tout s'exécute dans votre navigateur — votre entrée est parsée et ré-sérialisée par JavaScript sur cette page et n'est jamais envoyée à un serveur.
Puis-je personnaliser l'indentation ?
Actuellement fixée à 2 espaces par niveau. Pour personnaliser, lancez fast-xml-parser en ligne de commande — même bibliothèque — et passez `{ indentBy: " " }` ou n'importe quelle autre chaîne.