Validierung verstehen
Warum eine gültige XML-Datei trotzdem fehlschlagen kann
Eine XML-Datei kann technisch korrekt aufgebaut sein und trotzdem keine gültige XRechnung oder EN-16931-konforme E-Rechnung sein. Der Grund liegt in verschiedenen Prüfebenen: XML-Syntax, XSD-Schema, Schematron-Geschäftsregeln und Profilanforderungen.
Zuletzt fachlich geprüft: 14. Mai 2026
Kurz gesagt
„Gültige XML“ bedeutet zunächst nur: Die Datei ist technisch lesbar und folgt den Grundregeln von XML. Für eine E-Rechnung reicht das nicht. Eine Rechnung muss zusätzlich zur richtigen Syntax, zum richtigen Schema, zu EN-16931-Geschäftsregeln und zum erwarteten Profil passen.
Darum kann eine Datei in einem XML-Editor ohne Fehler geöffnet werden, aber in einem E-Rechnungs-Validator scheitern. Der Validator prüft nicht nur, ob die Datei Text enthält, sondern ob die strukturierten Rechnungsdaten fachlich und technisch verarbeitbar sind.
Vier Prüfebenen, vier unterschiedliche Fragen
Der häufigste Denkfehler ist, alle Arten von „gültig“ gleichzusetzen. Bei E-Rechnungen meint gültig je nach Ebene etwas anderes. Eine Datei kann eine Ebene bestehen und an der nächsten scheitern.
| Ebene | Frage | Beispiel für Fehler |
|---|---|---|
| XML-Syntax | Ist die Datei technisch wohlgeformt? | Ein Tag ist nicht geschlossen oder die Kodierung ist defekt. |
| XSD-Schema | Stehen Elemente an erlaubten Stellen und haben sie passende Datentypen? | Ein Betrag steht im falschen Element oder ein Pflichtcontainer fehlt. |
| Schematron / Business Rules | Stimmen Pflichtfelder, Codes, Summen und Steuerlogik? | Die Summe der Positionen passt nicht zum Rechnungsnetto. |
| Profil / CIUS | Passt die Rechnung zur erwarteten Spezifikation? | Die Datei ist EN 16931, aber nicht die erwartete XRechnung. |
XML-Syntax: Die Datei lässt sich lesen
Die erste Ebene ist die technische XML-Syntax. Sie beantwortet nur die Frage, ob die Datei als XML gelesen werden kann. Sind Tags korrekt geschlossen? Ist die Zeichenkodierung lesbar? Gibt es unsichere oder verbotene XML-Konstrukte?
Wenn diese Ebene fehlschlägt, ist die Datei meist grundsätzlich kaputt oder unsicher. Wenn sie besteht, heißt das aber noch nicht, dass es eine brauchbare Rechnung ist. Es heißt nur, dass der Validator die Datei weiter untersuchen kann.
XSD-Schema: Die Struktur passt zur Syntaxfamilie
XSD-Schema-Validierung prüft, ob die XML-Struktur zur verwendeten Syntax passt, zum Beispiel UBL oder CII. Diese Ebene kontrolliert, welche Elemente wo stehen dürfen und welche Datentypen erwartet werden.
Ein Schema kann aber nicht jede fachliche Rechnungslogik prüfen. Es kann erkennen, dass ein Betragsfeld eine Zahl enthält. Es kann nicht allein sicherstellen, dass alle Summen nach den EN-16931-Regeln zusammenpassen oder dass der verwendete Steuergrund zur Steuerkategorie passt.
Schematron: Die Rechnung muss fachlich stimmen
Viele wichtige E-Rechnungsregeln werden als Schematron- oder Business-Rule-Prüfung umgesetzt. Hier geht es um fachliche Zusammenhänge: Pflichtfelder, Codelisten, Steuerkategorien, Rundungsregeln, Summenlogik und Profilregeln.
Ein typisches Beispiel ist eine Rechnung, deren einzelne Positionen rechnerisch nicht zur Gesamtsumme passen. Die XML-Datei kann wohlgeformt sein, das Schema kann bestehen, und trotzdem scheitert die Rechnung an einer Business Rule wie BR-CO-10.
Profil und CIUS: Die Rechnung muss zum Empfänger passen
EN 16931 beschreibt das europäische Kernmodell. In der Praxis verwenden Länder oder Netzwerke zusätzliche Spezifikationen. XRechnung ist die deutsche CIUS. Sie konkretisiert und beschränkt die Nutzung des Kernmodells für bestimmte deutsche Prozesse.
Deshalb kann eine Rechnung formal EN-16931-nah sein, aber beim Empfänger trotzdem scheitern, wenn sie nicht dem erwarteten XRechnung-Profil, der geforderten Syntax oder den geforderten Zusatzregeln entspricht.
Warum ZUGFeRD und Factur-X zusätzlich verwirren
Bei ZUGFeRD und Factur-X gibt es zwei Ebenen in einer Datei: die sichtbare PDF-Ansicht und die eingebettete XML-Rechnung. Das PDF kann korrekt aussehen, während die XML-Schicht fehlerhaft, unvollständig oder im falschen Profil eingebettet ist.
Für die automatische Verarbeitung zählt die strukturierte XML-Schicht. Eine visuell plausible Rechnung ist deshalb kein Beweis dafür, dass die Datei als E-Rechnung angenommen werden kann.
Wie man die Fehlermeldung richtig liest
Eine gute Fehlermeldung sollte nicht nur „invalid“ sagen. Sie sollte zeigen, welche Ebene betroffen ist, welche Regel ausgelöst wurde und welche Daten wahrscheinlich korrigiert werden müssen.
Praktisch hilft diese Reihenfolge: zuerst Format und Profil prüfen, dann Syntax, dann Schema, dann Business Rules. So lässt sich schneller erkennen, ob der Fehler aus einem kaputten XML, einem falschen Exportprofil oder einer fachlichen Rechnungslogik stammt.
Praktische Checkliste
- Nicht nur prüfen, ob die XML-Datei geöffnet werden kann
- Prüfebene notieren: Syntax, Schema, Business Rules oder Profil/CIUS
- Bei Summen- und Steuerfehlern die fachliche Logik im ERP-System prüfen
- Bei ZUGFeRD/Factur-X die eingebettete XML-Rechnung separat validieren
- Fehlerbericht mit Regelnummer und Klartext an Softwareanbieter oder Buchhaltung weitergeben
- Nach jeder Korrektur erneut validieren, bevor die Rechnung versendet wird
Merksatz
XML-gültig bedeutet nicht automatisch rechnungsgültig. Eine E-Rechnung muss als Datei lesbar, strukturell korrekt, fachlich konsistent und profilkonform sein.