XML-Formatierer und Minifizierer
Fügen Sie XML ein, um es sofort zu formatieren, zu verschönern oder zu minimieren.
So funktioniert es
- Fügen Sie Ihr XML in das Eingabefeld ein.
- Klicken Sie auf Formatieren zum Verschönern oder auf Minimieren zum Komprimieren.
- 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:
- Office-Dokumentformate: Microsofts
.docx/.xlsx/.pptxsind ZIP-Archive voller XML-Teile, standardisiert als ECMA-376 und ISO/IEC 29500. OpenDocuments.odt/.ods/.odp(ISO/IEC 26300) folgen demselben Muster. EPUB-E-Books sind ebenfalls in XML verpackt. - Web-Vokabulare: SVG (Vektorgrafik), MathML (mathematische Notation), Atom-Feeds, RSS 2.0 und das
sitemap.xml-Protokoll, das Google und Bing für die Crawl-Planung parsen. - SOAP und Unternehmens-Messaging: Back-Ends von Banken, Telekommunikation, Versicherungen und Behörden stellen weiterhin SOAP-Endpunkte bereit, oft hinter einer REST-Fassade. Branchenstandards auf Basis von XML umfassen FpML für Derivate, XBRL für SEC-Einreichungen, ACORD für Versicherungen und ISO 20022 für den Zahlungsverkehr.
- Build- und Konfigurationsdateien: Mavens
pom.xml, ältere Spring-Beans, jede Android-Ressource (AndroidManifest.xml,res/values/strings.xml,res/layout/*.xml) und ApplesInfo.plistin seiner XML-Variante. - Austausch in vertikalen Fachbereichen: KML für Google Earth, GPX für GPS-Spuren, MusicXML für Notenblätter (4.0 veröffentlicht 2021), XLIFF für Lokalisierung (2.1 im Juli 2024 als ISO 21720 standardisiert), HL7 v3 / CDA für klinische Dokumente.
Wohlgeformt vs. gültig: Das ist nicht dasselbe
XML verwendet zwei verschiedene Konformitätsstufen, und sie sind leicht zu verwechseln:
- Wohlgeformt bedeutet, dass das Dokument der Grammatik von XML gehorcht, genau ein Wurzelelement, alle Tags ausgeglichen und korrekt verschachtelt, Attributwerte in Anführungszeichen, Entitätsreferenzen mit einem Semikolon abgeschlossen, kein unmaskiertes
<oder&im Textinhalt. - Gültig bedeutet, dass ein wohlgeformtes Dokument zusätzlich einem deklarierten DTD-, XSD- (XML Schema 1.1), RELAX-NG- oder Schematron-Schema entspricht, die richtigen Elemente an den richtigen Stellen, mit Attributwerten der richtigen Typen, in den richtigen Kardinalitäten.
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 & ohne ein abschließendes ;.
| Entität | Zeichen | Wo es erforderlich ist |
|---|---|---|
< | < | Immer im Elementinhalt (es würde sonst ein Tag beginnen) |
& | & | Immer (es würde sonst eine Entitätsreferenz beginnen) |
> | > | Erforderlich innerhalb der Sequenz ]]> im Inhalt; anderswo aus Symmetriegründen empfohlen |
' | ' | Innerhalb von Attributwerten, die mit einfachen Anführungszeichen begrenzt sind |
" | " | 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:
- CDATA-Abschnitte:
<![CDATA[ … ]]>-Blöcke ermöglichen es Ihnen, beliebigen Text einzubetten, ohne<und&zu maskieren. Die einzige Sequenz, die Sie nicht in ein CDATA einfügen können, ist der wörtliche Schlussbegrenzer]]>. Nützlich, um Codebeispiele, Regex-Muster oder HTML-Fragmente in XML-Dokumentation einzubetten. - Kommentare:
<!-- … -->. Die Zeichenfolge--ist innerhalb eines Kommentars unzulässig. - Verarbeitungsanweisungen:
<?target …?>. Die XML-Deklaration selbst ist technisch gesehen keine PI, aber die meisten Werkzeuge behandeln sie auf dieselbe Weise:<?xml version="1.0" encoding="UTF-8"?>ist die empfohlene erste Zeile.
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
- Format / Beautify rückt verschachtelte Elemente ein, platziert öffnende und schließende Tags in eigenen Zeilen und erzeugt eine Ausgabe, die viel leichter zu lesen, aber typischerweise 30 bis 50 % größer ist als das minifizierte Äquivalent. Verwenden Sie dies beim Debuggen, beim Durchsehen von Diffs oder beim Erlernen eines unbekannten Schemas.
- Minify entfernt sämtlichen Leerraum zwischen Elementen, während Leerraum innerhalb des Textinhalts erhalten bleibt (XML definiert Leerraum innerhalb von Elementinhalt standardmäßig als signifikant, sofern nicht durch
xml:space="default"überschrieben). Verwenden Sie dies für Produktions-Nutzdaten und für jeden Fall, in dem die Bytes auf der Leitung zählen.
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
- Unmaskiertes
&im Textinhalt. Ein nacktes Et-Zeichen ist immer ungültig; verwenden Sie&. - 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/>). - 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.
- 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. - Reservierte Zeichen in Attributwerten.
<tag attr="a<b">ist ungültig, obwohl<innerhalb von Anführungszeichen harmlos aussieht. - Verirrtes BOM vor der XML-Deklaration. Manche Texteditoren fügen stillschweigend ein UTF-8-BOM ein, das strenge Parser verwirrt.
- 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.