XML mit 2 Leerzeichen, 4 Leerzeichen oder Tabs schön drucken oder auf eine Zeile minifizieren. Die Wohlgeformtheit wird während der Eingabe geprüft, und Elementanzahl sowie Verschachtelungstiefe werden angezeigt.
Eine Wand aus XML lesbar machen oder wieder verpacken. Fügen Sie XML ein, um es mit dem gewünschten Abstand neu einzurücken, oder minifizieren Sie es auf eine Zeile. Das Dokument wird während der Eingabe auf Wohlgeformtheit geprüft, und die Zähler sagen Ihnen, wie viele Elemente es enthält und wie tief es verschachtelt ist.
–
XML formatieren, ohne es zu brechen
Whitespace in XML ist Inhalt
Das ist der eine Fakt, der XML-Formatierung von JSON-Formatierung unterscheidet. In JSON ist Whitespace zwischen Tokens bedeutungslos und das Entfernen ist immer sicher. In XML sind die Zeichen zwischen <name> und Ada Teil des Textknotens des Elements. Ein Dokument neu einzurücken verändert technisch, was es enthält.
In der Praxis spielt das fast nie eine Rolle, weil die überwältigende Mehrheit von XML nur-Element-Inhalt verwendet — Elemente, die andere Elemente und sonst nichts enthalten — wo umgebender Whitespace von jedem Schema ignoriert werden kann. Der Formatierer fügt Einrückung nur innerhalb solcher Elemente hinzu. Wenn ein Element tatsächlichen Text oder eine Mischung aus Text und Kindelementen wie Markup im HTML-Stil hält, wird sein Inhalt exakt so belassen, wie er gefunden wurde. Diese einzelne Regel verhindert, dass <p>Hello <b>there</b></p> stillschweigend Leerzeichen um there gewinnt.
Wohlgeformt ist nicht dasselbe wie gültig
Die hier durchgeführte Prüfung ist die Wohlgeformtheit, die die XML-Spezifikation von jedem Parser verlangt: ein Wurzelelement, jedes Tag geschlossen und korrekt verschachtelt, Attributwerte in Anführungszeichen, und & und < innerhalb von Text escaped. Wenn davon etwas fehlschlägt, wird das Dokument glatt abgewiesen — XML hat berüchtigtermaßen keine Fehlerwiederherstellung, anders als HTML.
Gültigkeit ist ein weiterer Schritt: sie fragt, ob das Dokument zu einem DTD-, XSD- oder RelaxNG-Schema passt, sodass <invoice> wirklich ein <total> enthält und das Datum wirklich ein Datum ist. Das erfordert das Schema, das nicht Teil des eingefügten Dokuments ist. Ein grünes Ergebnis hier bedeutet, dass die Syntax sauber ist und jeder Parser die Datei akzeptiert. Es bedeutet nicht, dass das empfangende System den Inhalt für korrekt hält.
Minifizierung und Self-Closing-Tags
Minifizieren entfernt den ignorierebaren Whitespace zwischen Elementen und setzt das ganze Dokument in eine Zeile. Weil dieser Whitespace nie Inhalt war, parst Ausgabe, die als nur-Element-Markup begann, exakt denselben Baum.
Die andere Ersparnis kommt von leeren Elementen: <summary></summary> und <summary/> sind laut Spezifikation identisch definiert, und die kürzere Form wird bei der Ausgabe verwendet. Der Gewinn ist real, aber bescheiden — XML zahlt den Großteil seiner Größe in wiederholten Tagnamen, da jedes Element seinen Namen zweimal schreibt. Wenn eine Datei wirklich kleiner sein muss, ist gzip die Antwort; es behandelt jene wiederholten Namen weit besser als jede Menge Whitespace-Entfernung. Behalten Sie eine formatierte Kopie zum Lesen, denn minifiziertes XML ist für Menschen fast unlesbar.
FAQ
Wird mein XML irgendwo hochgeladen?
Nein. Das Dokument wird im Browser mit dem eingebauten DOMParser geparst und serialisiert, also wird nichts an einen Server gesendet.
Verändert das Formatieren mein Dokument?
Nur innerhalb von Elementen, die nichts als andere Elemente enthalten, wo Whitespace ignoriebar ist. Elemente mit Text oder gemischtem Inhalt werden unberührt gelassen.
Validiert dies gegen ein Schema?
Nein. Es prüft die Wohlgeformtheit — geschlossene und korrekt verschachtelte Tags, ein Wurzel, escapte Zeichen. Die Validierung gegen ein DTD oder XSD braucht das Schema selbst.
Warum wird mein Dokument abgewiesen?
Meist ein ungeschlossenes oder nicht passendes Tag, ein nicht escaptes & oder <, ein nicht in Anführungszeichen gesetzter Attributwert oder mehr als ein Wurzelelement. XML hat keine Fehlerwiederherstellung.
Was bedeuten die Element- und Tiefen-Zähler?
Elemente ist die Gesamtzahl der Elementknoten im Dokument. Tiefe ist die längste Kette verschachtelter Elemente, wobei die Wurzel als Ebene eins zählt.
Warum hat meine leere Tags die Form geändert?
<a></a> und <a/> sind laut XML-Spezifikation als identisch definiert, also verwendet die minifizierte Ausgabe die kürzere Self-Closing-Form, um Bytes zu sparen.