XML-Formatierer und Minifizierer

Fügen Sie XML ein, um es sofort zu formatieren, zu verschönern oder zu minimieren.

Keine Daten verlassen Ihr Gerät

So funktioniert es

  1. Fügen Sie Ihr XML in das Eingabefeld ein.
  2. Klicken Sie auf Formatieren zum Verschönern oder auf Minimieren zum Komprimieren.
  3. Kopieren oder laden Sie das Ergebnis herunter.

Häufige Fragen

Was passiert, wenn mein XML Fehler enthält?

Das Tool validiert Ihr XML mit dem im Browser eingebauten DOMParser. Syntaxfehler werden in einem roten Fehlerkasten oberhalb der Ausgabe angezeigt.

Werden CDATA-Abschnitte, Kommentare und Verarbeitungsanweisungen unterstützt?

Ja. Der Formatter erhält alle XML-Knotentypen, einschließlich CDATA-Abschnitte, Kommentare und Verarbeitungsanweisungen.

Gibt es eine Größenbegrenzung?

Es gibt keine harte Grenze · sie hängt vom Speicher Ihres Browsers ab. XML-Dateien bis zu mehreren MB lassen sich in der Regel sofort formatieren.

Eine praktische Tour durch XML

XML 1.0 wurde am 10. Februar 1998 zur W3C-Empfehlung, herausgegeben von Tim Bray, Jean Paoli und C. M. Sperberg-McQueen, mit einer von Suns Jon Bosak geleiteten Arbeitsgruppe. Tim Brays Einführungszitat fasste die Entwurfsabsicht zusammen: „XML ist erweiterbar, internationalisiert, robust, einfach und für das Web gemacht.“ Die aktuelle kanonische Version ist die Fifth Edition, veröffentlicht am 26. November 2008, herausgegeben von Bray, Paoli, Sperberg-McQueen, Eve Maler und François Yergeau. XML stammt direkt von SGML (ISO 8879:1986) ab, einem viel größeren, viel schwerer zu implementierenden Dokumentformat, aus dem XML die meisten der selten genutzten Teile entfernte und dabei das Dokumentmodell intakt ließ.

Wo XML 2026 noch lebt

JSON dominiert seit über einem Jahrzehnt die Nutzdaten von REST-APIs, aber XML bleibt überall dort fest verankert, wo Schema-Strenge, Dokumentsemantik oder etablierte Standards es festschreiben. Zu wissen, wo Sie ihm an einem bestimmten Tag begegnen, ist der halbe Wert eines guten Formatierers:

Wohlgeformt vs. gültig: Das ist nicht dasselbe

XML verwendet zwei verschiedene Konformitätsstufen, und sie sind leicht zu verwechseln:

Dieser Formatierer prüft nur die Wohlgeformtheit. Der im Browser eingebaute DOMParser meldet den ersten Parse-Fehler, auf den er trifft, über ein parsererror-Element, das das Werkzeug im roten Fehlerkasten anzeigt. Die Validierung gegen ein Schema erfordert ein anderes Werkzeug (Saxon für XSD, libxml2 mit xmllint --schema, der W3C-Validierungsdienst usw.).

Die fünf vordefinierten Entitätsreferenzen

Gemäß W3C XML 1.0 §4.6 „müssen wohlgeformte Dokumente keine der folgenden Entitäten deklarieren“: amp, lt, gt, apos, quot. Das abschließende Semikolon ist Pflicht, XML akzeptiert, anders als manche HTML-Nutzung, niemals &amp ohne ein abschließendes ;.

EntitätZeichenWo es erforderlich ist
&lt;<Immer im Elementinhalt (es würde sonst ein Tag beginnen)
&amp;&Immer (es würde sonst eine Entitätsreferenz beginnen)
&gt;>Erforderlich innerhalb der Sequenz ]]> im Inhalt; anderswo aus Symmetriegründen empfohlen
&apos;'Innerhalb von Attributwerten, die mit einfachen Anführungszeichen begrenzt sind
&quot;"Innerhalb von Attributwerten, die mit doppelten Anführungszeichen begrenzt sind

CDATA-Abschnitte, Kommentare und Verarbeitungsanweisungen

Drei besondere syntaktische Merkmale, denen jeder, der XML formatiert, irgendwann begegnet:

Namespaces

Der Namespace-Mechanismus von XML ermöglicht es, dass mehrere Vokabulare in einem einzigen Dokument koexistieren, Atom plus eine benutzerdefinierte Erweiterung, SOAP plus WS-Security-Header, OOXMLs Hauptdokumentteil, der auf Beziehungen, Zeichnungen und Bilder aus Schwester-Namespaces verweist. Die Syntax ist xmlns="…" für einen Standard-Namespace und xmlns:prefix="…" für einen mit Präfix, und der Formatierer bewahrt beide unverändert. Namespace-URIs sind Bezeichner, keine URLs, sie müssen auf nichts auflösen.

Zwei berühmte XML-Sicherheitsfallen

Der Billion-Laughs-Angriff. Eine kleine XML-Datei mit sich rekursiv ausdehnenden Entitäten kann im Speicher des Parsers auf Milliarden von Zeichen anschwellen:

<!ENTITY lol "lol">
<!ENTITY lol2 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
<!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
<!-- … nine more layers later, the document expands to 10^9 lols -->

Moderne Parser begrenzen die Entitätsexpansion, um dies zu verhindern. XXE-Angriffe (XML External Entity) nutzen einen Parser aus, der externe Entitäten auflöst, um lokale Dateien zu lesen (<!ENTITY xxe SYSTEM "file:///etc/passwd">) oder SSRF-Anfragen vom Server auszulösen. Das XXE-Präventions-Cheatsheet von OWASP ist eindeutig: „Der sicherste Weg, XXE zu verhindern, besteht immer darin, DTDs (externe Entitäten) vollständig zu deaktivieren.“ Genau das tut der DOMParser des Browsers, er ignoriert DOCTYPE-Entitätsdeklarationen vollständig, weshalb dieser clientseitige Formatierer auch sicher mit nicht vertrauenswürdigem XML gefüttert werden kann.

Pretty-Printing vs. Minifizieren

Das Attribut xml:space ist Ihr Notausgang, wenn Leerraum wirklich zählt, zum Beispiel wörtlicher Quellcode, der in Dokumentation eingebettet ist. Setzen Sie xml:space="preserve" auf ein Vorfahrenelement, und ein konformer Prozessor behält jedes Leerzeichen und jeden Zeilenumbruch in den Nachfahren byte-für-byte bei.

Häufige XML-Fehler, die ein Formatierer abfängt

  1. Unmaskiertes & im Textinhalt. Ein nacktes Et-Zeichen ist immer ungültig; verwenden Sie &amp;.
  2. Nicht übereinstimmende oder nicht geschlossene Tags. Der häufigste Parse-Fehler. Jedes <tag> braucht ein passendes </tag> (oder verwenden Sie die selbstschließende Form <tag/>).
  3. Mehrere Wurzelelemente. Ein XML-Dokument muss genau ein äußerstes Element haben. Wenn Sie zwei Geschwister auf der obersten Ebene haben, umschließen Sie sie mit einem Elternelement.
  4. Kodierungs-Diskrepanz. Eine Deklaration <?xml version="1.0" encoding="UTF-8"?> muss zur tatsächlichen Byte-Kodierung der Datei passen. Ein UTF-16-BOM mit einer UTF-8-Deklaration ist die klassische Variante dieses Fehlers.
  5. Reservierte Zeichen in Attributwerten. <tag attr="a<b"> ist ungültig, obwohl < innerhalb von Anführungszeichen harmlos aussieht.
  6. Verirrtes BOM vor der XML-Deklaration. Manche Texteditoren fügen stillschweigend ein UTF-8-BOM ein, das strenge Parser verwirrt.
  7. Gemischte Zeilenenden innerhalb von xml:space="preserve"-Bereichen. Inkonsistente CR / LF / CRLF können sichtbare Leerraum-Artefakte erzeugen, wenn man sie über verschiedene Plattformen hin und her überträgt.

Weitere häufig gestellte Fragen

Warum erzeugt meine XML-Formatierung keine Ausgabe?

Meistens, weil die Eingabe nicht wohlgeformt ist. Der Fehlerkasten über der Ausgabe zeigt den ersten Parse-Fehler, auf den der DOMParser des Browsers trifft, meist ein fehlendes oder nicht übereinstimmendes Tag, ein unmaskiertes & oder ein fehlendes Wurzelelement. Beheben Sie den Fehler und führen Sie es erneut aus.

Wird mein XML auf einen Server hochgeladen?

Nein. Formatierung und Minifizierung laufen beide im eingebauten DOMParser des Browsers und einem kleinen JavaScript-Serialisierer. Ihr XML verlässt die Seite nie, was bei SOAP-Nutzdaten, Konfigurationsdateien und allem anderen wichtig ist, das Zugangsdaten, interne URLs oder sensible Kundendaten enthalten kann.

Kann das Werkzeug gegen ein XSD- oder DTD-Schema validieren?

Nein. Die Schema-Validierung erfordert das Laden der Schemadatei und das Auflösen ihrer Referenzen, was ein anderes Problem ist als die Wohlgeformtheitsprüfung, die der Browser durchführt. Für die XSD-Validierung verwenden Sie Saxon oder xmllint --schema auf der Kommandozeile oder den W3C-XML-Schema-Validierungsdienst.

Ist XML 2026 noch relevant, oder sollte ich einfach JSON verwenden?

Das hängt davon ab, was Sie tun. Für neue REST-APIs ist JSON fast immer die richtige Wahl. Aber XML ist nach wie vor der Standard für Office-Dokumente (.docx, .xlsx), Unternehmens-Messaging (SOAP, Finanzstandards), Android-Ressourcen, EPUB, RSS / Atom, SVG und die meisten Austausche in regulierten Branchen. Zu wissen, wie man XML liest, formatiert und validiert, ist nach wie vor eine grundlegende Fähigkeit; es ist nur nicht das erste Werkzeug an jedem Tag, wie JSON es ist.

Was bedeutet „alle Knotentypen erhalten“ für den Formatierer?

CDATA-Abschnitte, Kommentare und Verarbeitungsanweisungen werden alle genau so beibehalten, wie sie in der Eingabe erscheinen, der Formatierer ändert nur den Leerraum zwischen Elementen. So bleibt ein <![CDATA[ if (a < b) { … } ]]>-Block byte-für-byte erhalten, selbst wenn sein Inhalt <-Zeichen enthält, die sonst maskiert werden müssten.

Verwandte Tools

Kostenloser Online-JSON-Formatierer & -Validator JSON-zu-YAML-Konverter Kostenloser SQL-Formatter