Ce que fait le formateur XML
Le XML stocke des données structurées sous forme de balises imbriquées. On le trouve dans les flux RSS, les sitemaps, les API SOAP, les mises en page Android, les fichiers Maven pom.xml, les documents Office et beaucoup d’exports de données, dont des formats administratifs comme les factures électroniques. Les machines l’écrivent souvent sur une seule longue ligne. Ce formateur XML le met en page avec un élément par ligne et une indentation cohérente, pour que l’imbrication soit facile à suivre.
Il propose trois actions :
- Formater indente le XML.
- Minifier retire les espaces entre les balises pour alléger le fichier.
- Valider vérifie que le document est bien formé et signale le premier problème.
Mode d’emploi
- Collez du XML dans la zone de gauche, appuyez sur Ouvrir un fichier ou sur Exemple. Le XML collé est formaté aussitôt.
- Choisissez une Indentation de 2 espaces, 4 espaces ou tabulations.
- Appuyez sur Formater, Minifier ou Valider. Ctrl+Entrée répète la dernière action.
- Appuyez sur Copier ou Télécharger pour enregistrer le résultat en fichier
.xml.
Avant et après
Un catalogue de produits sur une seule ligne :
<?xml version="1.0" encoding="UTF-8"?><catalog><book id="bk101"><author>Gambardella, Matthew</author><title>XML Developer's Guide</title><price>44.95</price></book><book id="bk102"><author>Ralls, Kim</author><title>Midnight Rain</title><price>5.95</price></book></catalog>
Après Formater avec 2 espaces :
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<price>44.95</price>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<price>5.95</price>
</book>
</catalog>
Le contenu texte reste sur la même ligne que son élément. C’est important, car un saut de ligne à l’intérieur de <price>44.95</price> changerait la valeur lue par un programme.
Minifier retransforme la version formatée en la ligne unique ci-dessus. Valider sur la même saisie indique : XML bien formé. Élément racine <catalog>, 9 éléments au total.
Les sections CDATA sont laissées exactement telles quelles : <script><![CDATA[if (a < b) run();]]></script> ressort inchangé.
Les erreurs repérées par le vérificateur
Beaucoup de formateurs XML « réparent » en silence un balisage cassé, par exemple en fermant une balise à un endroit que vous n’aviez pas prévu. Celui-ci vérifie d’abord le document et s’arrête au premier problème. Voici de vrais messages :
| Saisie | Message |
|---|---|
<to>Tove</from> |
Ligne 2, colonne 11 : La balise fermante </from> ne correspond pas à <to> ouvert à la ligne 2 |
Smith & Sons |
Ligne 1, colonne 16 : Un « & » isolé doit s'écrire & |
Un <item> jamais fermé |
Ligne 4, colonne 1 : La balise fermante </list> ne correspond pas à <item> ouvert à la ligne 3 |
<book id=101/> |
Ligne 1, colonne 10 : La valeur de « id » doit être entre guillemets |
| Deux éléments de premier niveau | Ligne 2, colonne 1 : Un seul élément racine est autorisé, un second a été trouvé : <b> |
Appuyez sur Afficher dans l’entrée pour placer le curseur sur le problème.
Ce que veut dire « bien formé »
Un document XML est bien formé quand il respecte les règles de syntaxe de base :
- Chaque balise ouvrante a sa balise fermante, ou se ferme elle-même comme
<br/>. - Les balises se ferment dans l’ordre inverse de leur ouverture.
- Il y a exactement un élément racine.
- Les valeurs d’attributs sont entre guillemets simples ou doubles, et aucun attribut n’apparaît deux fois sur un même élément.
- Un
&ou un<littéral dans le texte s’écrit&ou<. - La déclaration
<?xml ... ?>, si elle est présente, est la toute première chose du fichier.
Les entités nommées comme ou é ne sont autorisées que si une DOCTYPE les déclare, car le XML lui-même n’en connaît que cinq : <, >, &, ' et ". Pour les lettres accentuées du français, écrivez-les directement dans un fichier encodé en UTF-8 : <ville>Besançon</ville> est parfaitement valide.
Conseils et limites
- La validation n’utilise pas de schéma. Un document peut être bien formé et avoir quand même les mauvais éléments pour votre application.
- Les espaces à l’intérieur du texte sont conservés. Si le texte doit être remis en forme, modifiez-le à la main.
- Minifier garde les commentaires. Supprimez-les d’abord si vous voulez le fichier le plus léger possible.
- Tout s’exécute localement, donc les configurations internes et les exports peuvent être collés sans risque.
Autres façons de formater du XML
xmllint. Sous Linux et macOS, xmllint --format file.xml affiche une copie indentée, et xmllint --noout file.xml ne signale que les erreurs. Il peut aussi vérifier par rapport à un schéma avec --schema.
VS Code. Installez une extension XML (celle de Red Hat est un choix courant), puis lancez Mettre en forme le document.
Notepad++. Le plugin XML Tools ajoute une commande Pretty Print.
Outils associés
Si vos données sont en JSON, utilisez le formateur JSON. Pour les fichiers de configuration, le formateur YAML fait le même travail pour le YAML. Pour les pages web, utilisez le formateur HTML, qui comprend des règles HTML que le XML n’autorise pas.