Mettez en forme (pretty-print) du XML avec 2 espaces, 4 espaces ou des tabulations, ou minifiez-le sur une seule ligne. La validité de la forme est vérifiée pendant la saisie, et le nombre d'éléments et la profondeur d'imbrication sont affichés.
Rendez un mur de XML lisible, ou compactez-le à nouveau. Collez du XML pour le réindenter avec l'espacement de votre choix, ou minifiez-le sur une seule ligne. Le document est vérifié pour sa validité de forme pendant la saisie, et les compteurs indiquent combien d'éléments il contient et à quelle profondeur il s'imbrique.
–
Mettre en forme du XML sans le casser
L'espacement dans le XML est un contenu
C'est le fait unique qui distingue la mise en forme XML de la mise en forme JSON. En JSON, l'espacement entre les jetons est sans signification et le supprimer est toujours sûr. En XML, les caractères entre <name> et Ada font partie du nœud texte de l'élément. Réindenter un document modifie techniquement ce qu'il contient.
En pratique, cela n'a presque jamais d'importance, car l'écrasante majorité du XML utilise un contenu à éléments seuls — des éléments qui ne contiennent que d'autres éléments et rien d'autre — où l'espacement environnant est ignorable par chaque schéma. Le formulaire n'ajoute de l'indentation qu'à l'intérieur de tels éléments. Lorsqu'un élément contient du texte réel, ou un mélange de texte et d'éléments enfants comme le fait un balisage de type HTML, son contenu est laissé exactement tel quel. Cette règle unique empêche <p>Hello <b>there</b></p> de gagner silencieusement des espaces autour de there.
Bien formé n'est pas la même chose que valide
La vérification effectuée ici est la validité de forme, ce qu'exige la spécification XML de chaque analyseur : un élément racine, chaque balise fermée et correctement imbriquée, les valeurs d'attribut entre guillemets, et & et < échappés dans le texte. Si l'une de ces conditions échoue, le document est rejeté purement et simplement — le XML, à la différence de HTML, n'a célèbrement aucune reprise sur erreur.
La validité est une étape supplémentaire : elle demande si le document correspond à un schéma DTD, XSD ou RelaxNG, si bien que <invoice> contient bien un <total> et que la date est bien une date. Cela nécessite le schéma, qui ne fait pas partie du document collé. Un résultat vert ici signifie que la syntaxe est saine et qu'un analyseur quelconque acceptera le fichier. Cela ne signifie pas que le système receveur jugera le contenu correct.
Minification et balises auto-fermantes
Minifier supprime l'espacement ignorable entre les éléments et place tout le document sur une seule ligne. Comme cet espacement n'était jamais un contenu, une sortie partie d'un balisage à éléments seuls s'analyse en exactement le même arbre.
L'autre économie vient des éléments vides : <summary></summary> et <summary/> sont définis par la spécification comme identiques, et la forme plus courte est utilisée en sortie. Le gain est réel mais modeste — le XML paie la plus grande part de sa taille dans les noms de balises répétés, puisque chaque élément écrit son nom deux fois. Si un fichier doit être réellement plus petit, gzip est la solution ; il gère ces noms répétés bien mieux que n'importe quelle suppression d'espacement. Conservez une copie formatée pour la lecture, car le XML minifié est quasiment illisible pour un humain.
FAQ
Mon XML est-il téléversé quelque part ?
Non. Le document est analysé et sérialisé dans votre navigateur à l'aide du DOMParser intégré, si bien que rien n'est envoyé à un serveur.
La mise en forme modifie-t-elle mon document ?
Uniquement à l'intérieur des éléments qui ne contiennent que d'autres éléments, où l'espacement est ignorable. Les éléments contenant du texte ou un contenu mixte sont laissés intacts.
Cela valide-t-il contre un schéma ?
Non. Cela vérifie la validité de forme — balises fermées et correctement imbriquées, une racine, caractères échappés. La validation contre une DTD ou un XSD nécessite le schéma lui-même.
Pourquoi mon document est-il rejeté ?
Généralement une balise non fermée ou mal appariée, un & ou < non échappé, une valeur d'attribut non quotée, ou plus d'un élément racine. Le XML n'a aucune reprise sur erreur.
Que signifient les compteurs d'éléments et de profondeur ?
Éléments est le nombre total de nœuds d'élément dans le document. Profondeur est la plus longue chaîne d'éléments imbriqués, en comptant la racine comme niveau un.
Pourquoi mes balises vides ont-elles changé de forme ?
<a></a> et <a/> sont définis comme identiques par la spécification XML, aussi la sortie minifiée utilise-t-elle la forme auto-fermante plus courte pour économiser des octets.