Che cosa fa questo strumento
Il contenuto di elementi viene indentato; il contenuto testuale no.
<biblioteca><libro><titolo>Dune</titolo></libro></biblioteca>
diventa
<biblioteca>
<libro>
<titolo>Dune</titolo>
</libro>
</biblioteca>
La regola che conta
Un elemento che mescola testo ed elementi figli resta su una sola riga, esattamente come è stato scritto.
<p>Ciao <b>mondo</b> ancora</p>
Resta così. Il motivo è la differenza tra XML e HTML che sorprende di più: l’HTML riduce gli spazi, l’XML no. Un ritorno a capo inserito tra Ciao e <b> non è presentazione in XML: sono dati carattere, e restano nel documento per chi lo leggerà dopo.
Un formattatore che indenta dentro il contenuto misto non abbellisce il documento: ne modifica il testo. Questo indenta l’elemento come blocco e lascia stare il suo interno.
Che cosa conta come indentazione
Soltanto un nodo di testo interamente bianco, che contenga un ritorno a capo, e che stia in un elemento senza testo significativo proprio. Tutto il resto è contenuto.
Uno spazio singolo tra due elementi della stessa riga — <b>x</b> <i>y</i> — viene conservato. Nulla nel documento dice che sia trascurabile, e conservarlo costa un carattere.
xml:space="preserve" sospende tutto questo, per quell’elemento e per tutto ciò che contiene.
Il prologo torna come l’hai scritto
La dichiarazione, il DOCTYPE e ogni istruzione di elaborazione sono copiati alla lettera:
<?xml version="1.1" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE biblioteca SYSTEM "biblioteca.dtd">
<?xml-stylesheet href="style.xsl"?>
Tutti e tre sopravvivono. Riscrivere una dichiarazione in version="1.0" encoding="UTF-8" — come fanno molti strumenti — rietichetta il documento, e rietichettare cambia la lettura dei suoi byte.
Privato per progettazione
Tutto viene eseguito localmente nel browser con JavaScript. I tuoi dati non vengono mai caricati, quindi lo strumento è sicuro per contenuti sensibili e funziona anche offline.