Was dieses Werkzeug tut
Elementinhalt wird eingerückt; Textinhalt nicht.
<bibliothek><buch><titel>Dune</titel></buch></bibliothek>
wird zu
<bibliothek>
<buch>
<titel>Dune</titel>
</buch>
</bibliothek>
Die Regel, auf die es ankommt
Ein Element, das Text und Kindelemente mischt, bleibt in einer einzigen Zeile, genau wie geschrieben.
<p>Hallo <b>Welt</b> nochmal</p>
Das bleibt so. Der Grund ist der Unterschied zwischen XML und HTML, der die meisten überrascht: HTML lässt Whitespace zusammenfallen, XML nicht. Ein zwischen Hallo und <b> eingefügter Zeilenumbruch ist in XML keine Darstellung — er sind Zeichendaten, und sie bleiben im Dokument für den Nächsten, der es liest.
Ein Formatierer, der innerhalb von gemischtem Inhalt einrückt, macht das Dokument also nicht hübscher; er ändert dessen Text. Dieser rückt das Element als Block ein und lässt sein Inneres in Ruhe.
Was als Einrückung zählt
Nur ein Textknoten, der vollständig leer ist, einen Zeilenumbruch enthält und in einem Element ohne eigenen bedeutsamen Text sitzt. Alles andere ist Inhalt.
Ein einzelnes Leerzeichen zwischen zwei Elementen derselben Zeile — <b>x</b> <i>y</i> — bleibt erhalten. Nichts im Dokument sagt, dass es entbehrlich ist, und es zu behalten kostet ein Zeichen.
xml:space="preserve" setzt all das aus, für dieses Element und alles darunter.
Der Prolog kommt zurück, wie Sie ihn geschrieben haben
Deklaration, DOCTYPE und jede Verarbeitungsanweisung werden wörtlich übernommen:
<?xml version="1.1" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE bibliothek SYSTEM "bibliothek.dtd">
<?xml-stylesheet href="style.xsl"?>
Alle drei überleben. Eine Deklaration zu version="1.0" encoding="UTF-8" umzuschreiben — was viele Werkzeuge tun — etikettiert das Dokument um, und Umetikettieren ändert, wie seine Bytes gelesen werden.
Datenschutz ab Werk
Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.