Formateur XML

Indentez ou compactez un document XML sans changer ce qu'il dit, entièrement dans votre navigateur.

Fonctionne entièrement dans votre navigateur. Rien n'est envoyé, journalisé ni conservé.

Collez un document XML et rendez-le lisible. Indentation, ou le tout ramené sur une seule ligne — et rien d'autre de changé, parce qu'en XML l'essentiel de ce qu'un formateur aimerait ranger, ce sont des données.

Comment ça marche

Un formateur HTML peut indenter librement entre deux éléments de bloc, parce qu'un navigateur n'y affiche aucune espace. XML n'a pas d'éléments de bloc, ni d'éléments en ligne. Il ne sait pas ce que signifie le moindre de vos éléments, et une espace à l'intérieur d'un élément qui contient du texte fait partie de ce texte.

La règle est donc étroite, et elle est tout l'outil : un élément n'est réindenté que s'il contient un autre élément et aucun texte propre. Tout le reste — texte, contenu mixte, CDATA, une feuille ne contenant que des espaces, un élément marqué xml:space="preserve" — revient octet pour octet.

À l'intérieur d'une balise ouvrante, une espace n'est jamais une donnée : les suites d'espaces entre attributs deviennent une espace unique. Ce qui est entre les guillemets n'est pas touché. Les attributs ne sont jamais réordonnés, renommés ni requotés.

Les balises doivent s'équilibrer avant que quoi que ce soit ne se produise. Un document dont une balise fermante ne correspond pas, ou qui ouvre un élément sans jamais le fermer, est refusé plutôt que rangé : un formateur qui indente du balisage cassé rend quelque chose qui a l'air correct et qui est faux d'une nouvelle manière.

Exemples

Cas Saisie Résultat
Le contenu mixte est laissé exactement tel quel <p>Paper <em>and</em> cloth.</p> <p>Paper <em>and</em> cloth.</p>
Une feuille contenant des espaces les garde <value> </value> <value> </value>
Les attributs reçoivent une espace entre eux <a b="1" c="2"/> <a b="1" c="2"/>

Questions fréquentes

Pourquoi mon document est-il revenu sur une seule ligne ?

Parce que son élément racine contient du texte en plus d'éléments. C'est du contenu mixte, et les espaces qui s'y trouvent sont des données : indenter y insérerait des caractères que votre document n'avait pas. Le formateur fonctionne — il refuse de modifier votre contenu pour le rendre plus joli.

Vérifie-t-il mon XML contre un schéma ?

Non. Il vérifie que les balises s'équilibrent, ce dont il a besoin pour pouvoir indenter quoi que ce soit, et rien de plus. Pour contrôler un document contre un XSD, utilisez le validateur XML.

Est-ce que quelque chose quitte mon navigateur ?

Non. Le formateur est du JavaScript qui tourne sur votre machine ; le document n'est envoyé nulle part, ce qui est le seul arrangement sensé pour un fichier que vous collez afin d'en changer les espaces.

Pourquoi mes attributs ne sont-ils pas sur des lignes séparées ?

Parce qu'une balise ouvrante n'a aucune imbrication à montrer. La couper sur plusieurs lignes relève du goût et non de la structure, et ce formateur ne fait que les choses qui ont une seule bonne réponse.

Que supprime « sur une seule ligne » ?

Uniquement les espaces entre éléments, aux endroits mêmes où l'indentation en aurait ajouté. Le texte, les sections CDATA et les commentaires ne sont pas touchés : le document dit donc exactement ce qu'il disait.

Bon à savoir

  • Une passe de mise en forme, pas un analyseur. Les espaces de noms ne sont pas résolus, les entités ne sont pas développées, aucune valeur n'est normalisée et rien n'est vérifié contre un schéma.
  • L'encodage est celui de votre navigateur. La déclaration en tête du document est reprise telle quelle, quoi qu'elle dise.

Tous les outils Code