À propos de cet outil
Les réponses SOAP, sitemaps, POM Maven et rapports JUnit XML sont difficiles à lire sur une seule ligne. Ce formateur vérifie d’abord que la saisie est bien formée avec le parser XML du navigateur, puis la réindente avec un tokenizer qui laisse les sections CDATA, commentaires, instructions de traitement et le DOCTYPE exactement tels qu’écrits. Les éléments qui ne contiennent que du texte restent sur une ligne : le résultat ressemble à du XML écrit à la main plutôt qu’à une balise par ligne.
Mode d’emploi
- Collez du XML ou chargez le document de commande d’exemple.
- Choisissez « Format » et une indentation (2 espaces, 4 espaces ou tabulation), ou « Minify » pour tout ramener sur une ligne.
- Si le XML n’est pas bien formé, corrigez la ligne et la colonne indiquées dans le bandeau rouge.
- Copiez ou téléchargez le résultat.
Bien formé ne veut pas dire valide
Un XML bien formé respecte les règles de syntaxe : exactement un élément racine, chaque balise fermée et correctement imbriquée, des valeurs d’attribut entre guillemets et les caractères spéciaux échappés. Un XML valide est aussi bien formé et conforme à un schéma (XSD) ou une DTD qui définit les éléments et valeurs autorisés. Ce formateur vérifie qu’il est bien formé, car le document doit pouvoir être analysé avant d’être réindenté. La vérification par rapport à un XSD est une étape distincte.
Raisons courantes pour lesquelles un XML ne s’analyse pas
- Une esperluette ou un signe inférieur non échappé dans le texte : écrivez
&et<, ou placez le texte dans une section CDATA. - Des balises qui ne diffèrent que par la casse, comme
<Order>…</order>: XML est sensible à la casse. - Plus d’un élément de premier niveau : entourez-les d’une racine unique.
- Une valeur d’attribut sans guillemets, comme dans
<item id=7>. - Un préfixe d’espace de noms sans déclaration, comme
<soap:Envelope>sans attributxmlns:soap="…". - Quoi que ce soit avant la déclaration XML :
<?xml version="1.0"?>doit être tout au début, sans espace avant.
Où les testeurs rencontrent du XML
Les API SOAP et les API d’entreprise historiques, les rapports de test JUnit XML (le format que lisent la plupart des serveurs de CI), les fichiers Maven pom.xml, les sitemaps, les flux RSS et les layouts Android sont tous en XML. Playwright écrit du JUnit XML avec reporter: [['junit', { outputFile: 'results.xml' }]], et formater ce fichier est le moyen le plus rapide de comprendre pourquoi la CI a compté un test en échec.
Pour faire des assertions sur du XML dans le code, REST Assured prend en charge des matchers XPath comme body(hasXPath("/order/status[text()='SHIPPED']")). En ligne de commande, xmllint --format file.xml indente un fichier, et xml.dom.minidom.parseString(text).toprettyxml() de Python fait de même dans un script. Pour essayer des expressions XPath de façon interactive, utilisez le testeur de sélecteurs XPath et CSS.
FAQ : Formateur XML
Le formatage modifie-t-il mes données ?
Le texte composé uniquement d’espaces entre les balises est supprimé et recréé sous forme d’indentation, et le texte dans les éléments est rogné. C’est sans conséquence pour du XML orienté données, mais pour du contenu mixte ou des éléments où xml:space="preserve" compte, comparez le résultat avant de l’utiliser.
Les sections CDATA et les commentaires sont-ils conservés ?
Oui. Ils sont copiés octet pour octet, y compris tout balisage à l’intérieur des CDATA. En mode « Minify », vous pouvez choisir de supprimer les commentaires.