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.