Aller au contenu

Formateur et validateur XML

Collez du XML pour l'indenter avec 2 espaces, 4 espaces ou des tabulations, le réduire à une seule ligne, ou savoir pourquoi il ne s'analyse pas. Le XML bien formé donne son nombre d'éléments, sa profondeur d'imbrication et sa taille ; le XML mal formé affiche le message de l'analyseur. Gratuit, sans inscription, et votre XML ne quitte jamais votre navigateur.

Mode

Comment utiliser le formateur XML

  1. 1. Choisissez un mode. Formater met en forme ; Minifier supprime les espaces entre les éléments.
  2. 2. Choisissez une indentation. Pour Formater, choisissez 2 espaces, 4 espaces ou une tabulation.
  3. 3. Collez votre XML et cliquez sur le bouton. Le résultat apparaît en dessous avec trois compteurs : éléments, profondeur maximale (la racine est au niveau 1) et taille de sortie en caractères.
  4. 4. Corrigez les erreurs s'il y en a. Si le XML n'est pas bien formé, rien n'est produit et l'analyseur de votre navigateur indique ce qu'il a trouvé. Corrigez le XML et cliquez de nouveau sur le bouton.

Bien formé ou valide

Deux choses différentes sont appelées « valider » du XML. Un document est bien formé s'il respecte les règles de syntaxe de la Recommandation XML 1.0 du W3C ; il est valide s'il respecte en plus un schéma, comme une DTD ou un XSD. Cet outil vérifie seulement le caractère bien formé, à l'aide de l'analyseur XML intégré à votre navigateur. Il ne lit ni DTD ni schéma : un document bien formé mais inadapté à votre application, parce qu'il lui manque un élément obligatoire par exemple, passe donc le contrôle. Les règles appliquées sont les suivantes :

RègleÉchoue si
Une seule racineDeux éléments de premier niveau, ou du texte avant la racine
Les éléments s'imbriquent correctement<a><b></a></b>
Chaque balise ouvrante a sa balise fermante<a><b></a>, ou <br> au lieu de <br/>
Les noms sont sensibles à la casse<Title>…</title>
Les valeurs d'attributs sont entre guillemets<a id=1/>
Aucun attribut répété sur un même élément<a id="1" id="2"/>
< et & sont échappés dans le texte<a>5 < 6 & 7</a> doit devenir 5 &lt; 6 &amp; 7

XML ne définit que cinq entités prédéfinies — &lt;, &gt;, &amp;, &apos; et &quot; — donc une entité HTML comme &nbsp; est une erreur, sauf si une DTD la déclare. Pour une balise non fermée, le message, qui est celui du navigateur et varie selon le navigateur, nomme la paire qui ne correspond pas : dans Chrome, <a><b></a> signale une erreur à la ligne 1, colonne 11, avec « Opening and ending tag mismatch: b line 1 and a ».

Ce que le formateur modifie

L'outil analyse votre XML en un arbre puis le réécrit, si bien que la sortie est un XML équivalent dans une mise en page plus nette, et non une copie de votre texte. Attendez-vous à ces différences :

  • Déclaration et DOCTYPE conservés. Une ligne <?xml …?> en tête et une déclaration <!DOCTYPE …>, sous-ensemble interne compris, sont réécrites telles que vous les avez tapées.
  • Les attributs gardent leur ordre mais sont réécrits entre guillemets doubles.
  • Les entités sont résolues. &apos; et les références de caractères comme &#169; reviennent sous forme de caractères ; seuls &, < et > dans le texte, et &quot; dans les attributs, sont de nouveau échappés.
  • Les éléments vides se referment d'eux-mêmes. <a></a> devient <a/> s'il n'a aucun contenu, mais un élément ne contenant qu'une espace reste <a></a>.
  • Les commentaires, sections CDATA et instructions de traitement sont conservés.

Exemple détaillé

Ce document tenu sur une seule ligne contient une déclaration, un attribut entre apostrophes, un commentaire et un élément vide :

Entrée

<?xml version="1.0" encoding="UTF-8"?><library><book id='1'><title>APA Manual</title><year>2020</year><!-- note --></book><book id="2"/></library>

Formater, 2 espaces

Neuf lignes et 172 caractères : la déclaration, puis library sans indentation, chaque book décalé de deux espaces, et le titre, l'année et le commentaire décalés de quatre espaces. L'attribut id du premier livre est désormais écrit id="1".

Minifier

Une seule ligne de 146 caractères.

Statistiques

5 éléments et une profondeur maximale de 3 (library, book, title).

Minifier conserve la déclaration et place l'arbre entier sur une seule ligne, si bien que le même document passe de 172 à 146 caractères. La carte de taille de sortie affiche ces comptes de caractères.

De quel outil avez-vous besoin ?

Cette page est consacrée au XML. Pour le HTML, qui tolère les balises non fermées et conserve l'espacement en ligne, utilisez le Formateur HTML. Pour transformer du XML en données JSON, le Convertisseur XML vers JSON prévu montrera comment les attributs et les éléments répétés se traduisent ; pour le JSON lui-même, utilisez le Formateur JSON.

Questions fréquentes

À quoi sert un formateur XML ?
Il réindente le XML pour que l'imbrication soit visible, généralement avec un élément par ligne. Celui-ci vérifie aussi que le XML est bien formé, car il doit analyser le document avant de le réécrire dans une nouvelle mise en page.
Comment fonctionne ici la validation XML ?
L'analyseur XML intégré à votre navigateur lit le texte. Si le XML enfreint une règle de syntaxe, l'erreur de l'analyseur s'affiche et aucune sortie n'est produite. L'outil vérifie seulement le caractère bien formé : il ne valide pas contre une DTD ni un schéma XSD.
Les commentaires, sections CDATA et attributs sont-ils conservés ?
Oui : les commentaires et les sections CDATA sont réécrits tels quels, et les attributs gardent leur ordre, même si les guillemets sont normalisés en guillemets doubles. Une déclaration DOCTYPE est réécrite telle que vous l'avez tapée.
Que fait la minification ?
Elle supprime les espaces et sauts de ligne entre les éléments pour donner le texte équivalent le plus court, en conservant la déclaration XML si elle existe. Le texte à l'intérieur des éléments comme <title> garde ses espaces, de même que le texte placé à côté d'éléments enfants, comme un paragraphe contenant un mot en gras.
Pourquoi la mise en forme modifie-t-elle mes espaces dans le texte ?
Seulement lorsqu'elle met en forme du contenu mixte, c'est-à-dire du texte placé à côté d'éléments enfants, comme un paragraphe contenant un mot en gras. Formater supprime les espaces en début et fin de ce texte et met chaque morceau sur sa propre ligne, ce qui modifie les espaces ; Minifier les conserve. Le XML de type données, où les éléments contiennent soit du texte, soit d'autres éléments, n'est pas concerné.
Pourquoi mon XML contenant &nbsp; échoue-t-il ?
Le XML n'a que cinq entités prédéfinies, et &nbsp; n'en fait pas partie. Remplacez-la par la référence numérique &#160;, ou déclarez l'entité dans une DTD.
Mon XML est-il envoyé sur un serveur ?
Non. L'analyse et la mise en forme se font dans votre navigateur, et rien de ce que vous collez n'est envoyé ailleurs.

Outils associés

Autres outils : Données, balisage et code