100 % local — vos données ne quittent jamais votre navigateur

Formateur XML — relisez un document d’une ligne

Indentez du XML sans toucher à ce qu’il dit. Un élément qui mêle texte et enfants garde sa ligne : en XML, ces espaces-là font partie du contenu.

Instantané Privé Zéro cookie
Indentation

Entrée XML

Sortie XML

Ce que fait cet outil

Le contenu d’éléments est indenté ; le contenu textuel ne l’est pas.

<bibliotheque><livre><titre>Dune</titre></livre></bibliotheque>

devient

<bibliotheque>
  <livre>
    <titre>Dune</titre>
  </livre>
</bibliotheque>

La règle qui compte

Un élément qui mêle du texte et des éléments enfants reste sur une seule ligne, exactement tel qu’il a été écrit.

<p>Bonjour <b>tout le monde</b> encore</p>

Cela reste ainsi. La raison tient à la différence entre XML et HTML qui surprend le plus : HTML replie les espaces, XML non. Un saut de ligne inséré entre Bonjour et <b> n’est pas de la présentation en XML — ce sont des données caractères, et elles restent dans le document pour celui qui le lira ensuite.

Un formateur qui indente à l’intérieur d’un contenu mixte n’embellit donc pas le document : il en modifie le texte. Celui-ci indente l’élément comme un bloc et laisse son intérieur intact.

Ce qui compte comme indentation

Seulement un nœud texte entièrement blanc, contenant un saut de ligne, et placé dans un élément sans texte significatif propre. Tout le reste est du contenu.

Une espace unique entre deux éléments d’une même ligne — <b>x</b> <i>y</i> — est conservée. Rien dans le document ne dit qu’elle est négligeable, et la garder coûte un caractère.

xml:space="preserve" suspend tout cela, pour l’élément concerné et tout ce qu’il contient.

Le prologue revient tel que vous l’avez écrit

La déclaration, le DOCTYPE et toute instruction de traitement sont recopiés mot pour mot :

<?xml version="1.1" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE bibliotheque SYSTEM "bibliotheque.dtd">
<?xml-stylesheet href="style.xsl"?>

Les trois survivent. Réécrire une déclaration en version="1.0" encoding="UTF-8" — ce que font beaucoup d’outils — réétiquette le document, et réétiqueter change la lecture de ses octets.

Confidentiel par conception

Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.

Questions fréquentes

Pourquoi mon élément <p> est-il resté sur une ligne ?
Parce qu’il mêle du texte et des éléments enfants. XML n’a pas d’équivalent du repli d’espaces de HTML : un saut de ligne ajouté entre `Bonjour` et `<b>` devient partie du texte et y reste. L’élément est indenté comme un bloc, et son intérieur laissé exactement tel que vous l’avez écrit.
La mise en forme modifie-t-elle mon document ?
Non. Seuls les blancs qui sont de la pure indentation sont réécrits : un nœud texte entièrement blanc, contenant un saut de ligne, dans un élément sans texte significatif. Tout le reste, y compris les zones `xml:space="preserve"`, revient caractère pour caractère. Mettre en forme puis minifier redonne le document de départ.
Ma déclaration indique ISO-8859-1. Sera-t-elle réécrite ?
Non. Le prologue — déclaration, DOCTYPE, instructions de traitement — est recopié mot pour mot. Réétiqueter un document ISO-8859-1 en UTF-8 changerait la lecture de ses octets : la version, l’encodage et `standalone` restent tels que vous les avez déclarés.

Convertisseurs associés