XML Validator

XML-Syntax validieren und auf Wohlgeformtheitsfehler prüfen

Beispiel ausprobieren

XML-Eingabe

Läuft lokal · Sicher zum Einfügen von Secrets

Was ist XML-Validierung?

Ein XML-Validator prüft, ob ein XML-Dokument den strukturellen Regeln der XML-1.0-Spezifikation (W3C-Empfehlung, fünfte Ausgabe) entspricht. Im Mindestfall bestätigt dieser XML Validator, dass ein Dokument wohlgeformt ist: Es hat genau ein Root-Element, alle Tags sind korrekt verschachtelt und geschlossen, Attributwerte stehen in Anführungszeichen, und reservierte Zeichen verwenden vordefinierte Entities. Ein Dokument, das eine dieser Regeln verletzt, veranlasst XML-Parser, Fehler zu werfen — anstatt stillschweigend falsche Ergebnisse zu liefern.

Der Unterschied zwischen Wohlgeformtheit und Gültigkeit ist wichtig. Ein wohlgeformtes XML-Dokument erfüllt die Syntaxregeln der XML-Spezifikation selbst. Ein gültiges XML-Dokument geht weiter: Es entspricht zusätzlich den Einschränkungen eines externen Schemas, etwa eines DTD (Document Type Definition), XSD (XML Schema Definition) oder Relax NG Schemas. Dieses Tool prüft die Wohlgeformtheit — den ersten und häufigsten Validierungsschritt. Ohne diese Grundlage kann kein nachgelagerter Prozess fortfahren.

XML-Validierung erkennt Fehler, bevor sie in der Produktion ankommen. Nicht geschlossene Tags, nicht übereinstimmende Elementnamen, nicht maskierte Kaufmanns-Und-Zeichen und doppelte Attribute gehören zu den häufigsten Fehlern in manuell bearbeitetem XML. Parser in verschiedenen Sprachen behandeln diese Fehler unterschiedlich: Manche schlagen stillschweigend fehl, manche liefern Teilergebnisse, manche werfen Exceptions. XML zuerst durch einen Validator zu schicken beseitigt diese Unklarheit und liefert ein klares Ja-oder-Nein-Ergebnis mit genauen Fehlerdetails.

Warum einen Online-XML-Validator verwenden?

XML-Syntaxfehler frühzeitig zu erkennen verhindert Folgefehler in Anwendungen, die XML-Daten verarbeiten. Ein browserbasiierter Validator liefert sofortiges Feedback, ohne dass Command-Line-Tools installiert oder IDE-Plugins konfiguriert werden müssen.

Sofortige Fehlererkennung
XML einfügen und in unter einer Sekunde ein Bestanden-/Fehlgeschlagen-Ergebnis mit der genauen Fehlerposition erhalten. Keine Wartezeiten für Build-Pipelines oder CLI-Tool-Setup.
🔒
Datenschutz an erster Stelle
Das gesamte Parsen und Validieren erfolgt im Browser über die DOMParser-API. Ihr XML verlässt nie Ihren Rechner und wird nie an einen Server übertragen.
🎯
Präzise Fehlerberichte
Sie sehen die genaue Zeile und Spalte, an der die Validierung fehlschlägt, zusammen mit einer Fehlerbeschreibung. Das ist schneller als einen Stack-Trace eines Parsers im Anwendungscode zu lesen.
📋
Kein Konto oder Installation erforderlich
Seite öffnen, XML einfügen, Ergebnis sehen. Keine Anmeldeformulare, keine Desktop-Software, keine Browser-Erweiterungen.

Anwendungsfälle für den XML Validator

Frontend-Entwicklung
SVG-Dateien und XHTML-Fragmente validieren, bevor sie in React- oder Vue-Komponenten eingebettet werden. Ein einziges nicht geschlossenes Tag in einem SVG kann den gesamten Komponentenbaum zum Absturz bringen.
Backend-Entwicklung
SOAP-Antworten, XML-RPC-Payloads und RSS-/Atom-Feeds von Drittanbieter-APIs prüfen. Die rohe Antwort validieren, bevor Deserialisierungslogik geschrieben wird — so werden Parser-Exceptions zur Laufzeit vermieden.
DevOps und CI/CD
Sicherstellen, dass Maven-pom.xml-, .csproj- oder Ant-Build-Dateien nach automatisierten Bearbeitungen wohlgeformt sind. Ein Syntaxfehler in einer Build-Konfiguration kann eine gesamte Pipeline mit einer kryptischen Fehlermeldung zum Scheitern bringen.
QA und Testing
XML-Test-Fixtures und erwartete Ausgabedateien validieren, bevor Integrationstests ausgeführt werden. Fehlerhafte Fixtures erzeugen falsch-negative Ergebnisse, die Debugging-Zeit verschwenden.
Data Engineering
XML-Exporte aus Datenbanken, Open-Data-Portalen von Behörden und ETL-Pipelines prüfen. Die Struktur zu validieren, bevor XPath-Abfragen oder XSLT-Transformationen geschrieben werden, verhindert vergebliche Arbeit an fehlerhaften Quelldaten.
XML lernen
Studenten, die W3C-XML- oder XSLT-Tutorials durcharbeiten, können Übungsdateien in den Validator einfügen, um ihre Syntax zu prüfen. Die Fehlermeldungen zeigen genau auf das Problem und beschleunigen den Lernprozess.

XML-Wohlgeformtheitsregeln

Die XML-1.0-Spezifikation definiert einen strengen Satz von Syntaxregeln. Ein Dokument muss alle davon erfüllen, um als wohlgeformt zu gelten. Die Tabelle unten listet jede Regel auf, was sie erfordert und ein korrektes Beispiel. Die meisten Validierungsfehler lassen sich auf eine dieser Regeln zurückführen.

RegelAnforderungKorrektes Beispiel
Single root elementDocument must have exactly one root<root>...</root>
Matched tagsEvery opening tag needs a closing tag<p>text</p>
Proper nestingTags must close in reverse order of opening<a><b>...</b></a>
Quoted attributesAttribute values must be in single or double quotes<el attr="val"/>
Entity escapingReserved characters must use predefined entities&lt; &gt; &amp; &quot; &apos;
Case sensitivityTag names are case-sensitive: <A> is not </a><Book>...</Book>
No duplicate attributesEach attribute name must appear once per element<el a="1" b="2"/>
Valid XML declarationIf present, must be the very first line<?xml version="1.0"?>

Wohlgeformt vs. DTD-gültig vs. Schema-gültig

XML-Validierung hat drei Ebenen. Dieses Tool prüft die erste (Wohlgeformtheit), die eine Voraussetzung für die anderen beiden ist.

Wohlgeformt
Erfüllt die XML-1.0-Syntaxregeln: einzelnes Root-Element, übereinstimmende Tags, Attribute in Anführungszeichen, korrekte Verschachtelung. Jeder XML-Parser prüft dies zuerst. Ist ein Dokument nicht wohlgeformt, ist es kein XML.
DTD-gültig
Entspricht einem Document Type Definition, der festlegt, welche Elemente und Attribute erlaubt sind, ihre Reihenfolge und Kardinalität. DTDs werden inline oder über eine DOCTYPE-Referenz deklariert. DTD-Validierung ist in Legacy-Systemen und XHTML verbreitet.
Schema-gültig (XSD / Relax NG)
Entspricht einem XML Schema Definition (XSD) oder Relax NG Schema. Diese Schemas unterstützen Datentypen (integer, date, URI), Namensräume und komplexe Inhaltsmodelle. XSD-Validierung ist Standard bei SOAP-Webservices, HL7-Gesundheitsdaten und Enterprise-Integration.

Code-Beispiele

XML programmatisch in verschiedenen Sprachen validieren. Jedes Beispiel prüft die Wohlgeformtheit und gibt die Fehlermeldung zurück, wenn das Dokument fehlerhaft ist.

JavaScript (DOMParser)
function validateXML(xmlString) {
  const parser = new DOMParser()
  const doc = parser.parseFromString(xmlString, 'application/xml')
  const error = doc.querySelector('parsererror')
  if (error) {
    return { valid: false, message: error.textContent }
  }
  return { valid: true, message: 'Well-formed XML' }
}

validateXML('<root><item>hello</item></root>')
// → { valid: true, message: "Well-formed XML" }

validateXML('<root><item>hello</root>')
// → { valid: false, message: "Opening and ending tag mismatch..." }
Python
import xml.etree.ElementTree as ET

def validate_xml(xml_string):
    try:
        ET.fromstring(xml_string)
        return True, "Well-formed XML"
    except ET.ParseError as e:
        return False, str(e)

valid, msg = validate_xml('<root><item>hello</item></root>')
# → (True, "Well-formed XML")

valid, msg = validate_xml('<root><item>hello</root>')
# → (False, "mismatched tag: line 1, column 27")

# With lxml — also supports XSD schema validation
from lxml import etree
schema = etree.XMLSchema(etree.parse('schema.xsd'))
doc = etree.fromstring(b'<root><item>hello</item></root>')
schema.validate(doc)  # → True or False
Go
package main

import (
    "encoding/xml"
    "fmt"
    "strings"
)

func validateXML(raw string) error {
    decoder := xml.NewDecoder(strings.NewReader(raw))
    for {
        _, err := decoder.Token()
        if err != nil {
            if err.Error() == "EOF" {
                return nil
            }
            return err
        }
    }
}

func main() {
    err := validateXML("<root><item>hello</item></root>")
    fmt.Println(err) // → <nil>

    err = validateXML("<root><item>hello</root>")
    fmt.Println(err) // → XML syntax error: unexpected end element </root>
}
CLI (xmllint)
# Check well-formedness (part of libxml2, pre-installed on macOS/Linux)
xmllint --noout document.xml
# Exit code 0 = valid, non-zero = errors printed to stderr

# Validate against an XSD schema
xmllint --noout --schema schema.xsd document.xml

# Validate against a DTD
xmllint --noout --dtdvalid schema.dtd document.xml

# Validate from stdin
echo '<root><unclosed>' | xmllint --noout -
# → :1: parser error : Premature end of data in tag unclosed line 1

Häufig gestellte Fragen

Was ist der Unterschied zwischen wohlgeformtem und gültigem XML?
Wohlgeformtes XML folgt den Syntaxregeln der XML-1.0-Spezifikation: ein Root-Element, übereinstimmende und korrekt verschachtelte Tags, Attribute in Anführungszeichen. Gültiges XML geht weiter und entspricht zusätzlich einem DTD- oder XSD-Schema, das definiert, welche Elemente, Attribute und Datentypen erlaubt sind. Ein Dokument kann wohlgeformt, aber ungültig sein, wenn es korrekte Syntax hat, aber eine Schema-Einschränkung verletzt.
Kann ein XML-Dokument gültig, aber nicht wohlgeformt sein?
Nein. Wohlgeformtheit ist eine Voraussetzung für Gültigkeit. Verletzt ein Dokument eine XML-Syntaxregel (nicht geschlossenes Tag, Attribut ohne Anführungszeichen usw.), können Parser keinen Baum aufbauen, und die Schema-Validierung kann gar nicht erst beginnen. Zuerst Wohlgeformtheitsfehler beheben, dann gegen ein Schema prüfen.
Was sind die häufigsten XML-Validierungsfehler?
Die fünf häufigsten Fehler sind: nicht geschlossene oder nicht übereinstimmende Tags, nicht maskierte Kaufmanns-Und-Zeichen im Textinhalt, Attributwerte ohne Anführungszeichen, fehlendes Root-Element und falsche Groß-/Kleinschreibung in Tag-Namen (XML unterscheidet Groß- und Kleinschreibung). Die meisten dieser Fehler entstehen durch manuelles Bearbeiten von XML oder durch String-Konkatenation im Code statt eines korrekten XML-Serialisierers.
Ist XML-Validierung dasselbe wie XML-Linting?
Es überschneidet sich, ist aber nicht identisch. Validierung prüft, ob ein Dokument der XML-Spezifikation (Wohlgeformtheit) oder einem Schema (DTD/XSD) entspricht. Linting geht typischerweise weiter und markiert auch Stilprobleme: inkonsistente Einrückung, ungenutzte Namensraum-Deklarationen oder redundante Standard-Attributwerte. xmllint aus libxml2 kombiniert beides: --noout prüft die Wohlgeformtheit, während --schema XSD-Validierung hinzufügt.
Wie unterscheidet sich XML-Validierung von JSON-Validierung?
XML hat eine strengere und komplexere Grammatik als JSON. XML erfordert übereinstimmende öffnende/schließende Tags, unterstützt Attribute, Namensräume, gemischten Inhalt (Text und Elemente zusammen) und hat mehrere Schema-Sprachen (DTD, XSD, Relax NG, Schematron). JSON-Validierung prüft Klammer-Übereinstimmung, Schlüssel in Anführungszeichen und Kommapositionierung. JSON Schema existiert, ist aber einfacher als XSD. Ein XML-Dokument ist typischerweise 2–3 Mal größer als das entsprechende JSON für dieselben Daten.
Validiert dieses Tool gegen XSD- oder DTD-Schemas?
Dieses Tool prüft ausschließlich die Wohlgeformtheit: Es bestätigt, dass Ihr XML den Syntaxregeln der XML-1.0-Spezifikation entspricht. Es validiert nicht gegen externe DTD- oder XSD-Schemas. Für Schema-Validierung verwenden Sie xmllint --schema in der Kommandozeile oder lxml in Python, das sowohl XSD als auch Relax NG unterstützt.
Warum schlägt mein XML bei der Validierung fehl, obwohl es korrekt aussieht?
Die häufigsten unsichtbaren Ursachen sind: ein Byte Order Mark (BOM) vor der XML-Deklaration, ein unerwünschtes Zeichen nach dem schließenden Root-Tag, ein nicht maskiertes Kaufmanns-Und-Zeichen im Textinhalt (verwenden Sie stattdessen &amp;) oder ein Namensraum-Präfix, das verwendet, aber nie deklariert wurde. Kopieren Sie Ihr XML in einen Hex-Viewer oder führen Sie xmllint --noout aus, um den genauen Byte-Offset des Fehlers zu erhalten.