Aussi disponible en : English · Español · Português · العربية
Formateur XML en ligne
Collez votre XML, choisissez l’indentation, récupérez un résultat propre sans rien envoyer à un serveur.
Qu’est-ce qu’un formateur XML ?
Un formateur XML réindente un document XML pour le rendre lisible par un humain : une balise par ligne, l’imbrication des éléments visible d’un coup d’œil, plutôt qu’un flux compact où tout se suit sans retour à la ligne. C’est l’opération inverse de la minification, et c’est ce que fait cet outil dès que vous collez du texte dans le volet de gauche.
Le format XML sert de squelette à beaucoup de ce qu’on manipule sans le voir : un flux RSS ou Atom, un fichier de configuration, la réponse d’une API qui ne renvoie pas de JSON, ou un sitemap généré par un serveur. Ces fichiers sont presque toujours produits par une machine pour une autre machine, donc sans le moindre espace superflu — et c’est justement pourquoi ils deviennent illisibles à l’œil nu la première fois qu’il faut les relire, les déboguer ou les coller dans un ticket.
Ce formateur XML propose trois indentations (2 espaces, 4 espaces, une tabulation) et, à l’inverse, une case pour minifier plutôt qu’indenter — utile quand c’est la taille du fichier qui compte, pas sa lisibilité.
Comment utiliser le formateur XML
- Collez votre XML. Ouvrez le volet de gauche et collez-y le document à formater, ou chargez l’exemple fourni pour essayer l’outil sans fichier sous la main.
- Choisissez l’indentation. Sélectionnez 2 espaces, 4 espaces ou une tabulation, ou cochez « Minifier » pour tout ramener sur une seule ligne.
- Copiez le résultat. Le volet de droite se met à jour à chaque frappe ; cliquez sur le bouton de copie pour récupérer le XML formaté.
XML n’est pas du HTML : l’espace y est une donnée
La section 2.10 de la spécification XML 1.0 est explicite : « An XML processor MUST always pass all characters in a document that are not markup through to the application. » Autrement dit, les espaces qui se trouvent entre les balises d’un document XML ne sont pas une mise en forme que l’on peut réarranger à volonté : ce sont des caractères de données, au même titre que le reste du texte contenu dans le document.
Cet outil ne touche donc qu’une seule chose : le texte qui se trouve entre deux balises et qui n’est composé que d’espaces, de tabulations ou de retours à la ligne. Tout le reste — chaque caractère qui n’est pas de l’espace pur — ressort exactement identique à l’entrée. Ce n’est pas une promesse mais une garantie vérifiée : la concaténation de toutes les parties non-espace du document est comparée octet par octet avant et après le passage dans le formateur, sur un corpus écrit à la main et sur un balayage de 2 000 documents générés automatiquement, avec un cas de contrôle qui prouve que cette comparaison est bien capable d’échouer si un bug apparaît. Au total, 335 vérifications.
Concrètement, cela veut dire qu’un formateur XML mal conçu peut corrompre vos données sans que rien ne le signale : un espace ajouté dans un titre, une tabulation supprimée dans un extrait de code, un retour à la ligne inséré dans une valeur — invisibles à l’écran, mais différents au prochain traitement automatisé du fichier. C’est le risque que cette page a été construite pour éliminer.
Ce que cet outil refuse de toucher
Le formateur refuse de réindenter deux catégories d’éléments, et vous montre leur nombre au lieu de les modifier en silence. La première est tout élément portant l’attribut xml:space="preserve". La section 2.10 de la spécification définit précisément cet attribut : il « may be attached to an element to signal an intention that in that element, white space should be preserved by applications », et la valeur preserve « indicates the intent that applications preserve all the white space ». Cet attribut se transmet à tout ce qui se trouve à l’intérieur de l’élément, jusqu’à ce qu’un xml:space="default" le désactive plus bas dans l’arbre — et l’outil respecte les deux sens.
La seconde catégorie est tout élément qui contient du texte à lui, que ce texte soit seul (un élément de titre qui entoure le titre d’un livre) ou mélangé à des éléments enfants (un paragraphe avec un mot mis en gras au milieu). Cette règle est plus stricte qu’à l’origine du projet, et c’est un test qui l’a imposée : la première version ne refusait que le contenu mixte — texte et enfants ensemble — et réindentait sans hésiter un élément dont l’unique enfant était du texte. Résultat : un élément simple qui entourait un seul mot se retrouvait avec ce mot précédé d’un retour à la ligne et de quatre espaces, puis suivi d’un retour à la ligne et de deux espaces. Ces cinq caractères ajoutés sont du contenu, pas de la présentation, et le test d’invariant a échoué dès le premier document de son propre corpus — la règle a donc été élargie à toute présence de texte, seul ou non.
Certaines structures traversent l’outil intactes par construction, sans traitement particulier : les commentaires (la section 2.5 précise que « the string '--' MUST NOT occur within comments »), les sections CDATA (section 2.7 : « Within a CDATA section, only the CDEnd string is recognized as markup »), les instructions de traitement, et la déclaration de type de document — y compris celles qui portent un sous-ensemble interne entre crochets, dont le contenu peut lui-même comporter un signe supérieur.
Les valeurs d’attributs, elles non plus, ne sont jamais modifiées — y compris celles qui contiennent un signe supérieur ou l’autre type de guillemet que celui utilisé pour les délimiter.
Pourquoi est-ce gratuit ?
Ce formateur XML tourne entièrement dans votre navigateur : coller, formater et copier se passent sur votre propre machine, sans qu’un seul octet de votre document ne parte vers un serveur. Il n’y a donc rien à héberger de coûteux pour de gros fichiers, aucune raison de vous demander un compte, et aucun filigrane à apposer sur un résultat qui n’a jamais quitté votre poste. C’est ce qui rend l’outil gratuit sans condition cachée.