Schemafehler in E-Rechnungen und ihre cvc-Codes.
Codes wie cvc-complex-type.2.4.a melden einen Schemafehler, und ihre Namen kommen aus dem Standard XML Schema des W3C. Zu jedem Rechnungsformat gehört ein Schema. Das ist die technische Vorlage für die XML-Datei, also den maschinenlesbaren Teil der Rechnung. An der gemeldeten Stelle weicht die Datei von dieser Vorlage ab. Stammt die Rechnung unverändert aus einem Rechnungsprogramm, liegt die Ursache im Programm. Schicken Sie dem Hersteller den Code mit Zeile und Spalte.
Jannis Dietrich Stand: Informatikstudent an der Uni Ulm, baut gerade Yando auf
- Codes
-
cvc-complex-type.2.4.a,cvc-datatype-valid.1.2.1,cvc-complex-type.2.2 - Regelwerk
- keines; das Prüfprogramm vergleicht die Datei mit dem Schema ihres Formats
- Stufe im Prüfbericht
- Fehler
- Schreibweise der XML-Datei
- UBL oder CII
- Umsatzsteuer
- kein eigener Satz zu diesen Codes, nur die allgemeine Einordnung mit Quelle, im Abschnitt „Was das für die Umsatzsteuer heißt“
Was ein Schemafehler bedeutet.
So stehen Schemafehler im Prüfbericht, hier aus den Berichten zu unseren zwei Testrechnungen vom 23.10.2026, an den Stellen mit „…“ gekürzt. Die Sätze stehen in keinem Regelwerk der KoSIT. Sie kommen vom Teil des Prüfprogramms, der die Datei gegen das Schema prüft, und sind darum englisch. Die Namen der Codes gibt der Standard XML Schema des W3C vor.
cvc-complex-type.2.4.a Stufe im Prüfbericht: Fehler Zeile 12, Spalte 76 Invalid content was found starting with element '{"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":Quatsch}'. One of '{"…CommonAggregateComponents-2":InvoicePeriod, "…CommonAggregateComponents-2":OrderReference, …, "…CommonAggregateComponents-2":AccountingSupplierParty}' is expected. cvc-datatype-valid.1.2.1 Stufe im Prüfbericht: Fehler Zeile 8, Spalte 57 'test@beispiel.invalid' is not a valid value for 'date'. cvc-complex-type.2.2 Stufe im Prüfbericht: Fehler Zeile 8, Spalte 57 Element 'cbc:IssueDate' must have no element [children], and the value must be valid. Quelle: W3C, XML Schema Teil 1, abgerufen am 23.10.2026
Zu jedem Rechnungsformat gehört ein Schema. Das ist die technische Vorlage für die XML-Datei, also den maschinenlesbaren Teil der Rechnung. Das Schema legt fest, welche Einträge es gibt, in welcher Reihenfolge sie stehen und welche Form ein Wert hat. An der gemeldeten Stelle weicht die Datei von dieser Vorlage ab. Ein Code mit cvc-complex-type.2.4 meldet einen Eintrag, den das Format an dieser Stelle nicht vorsieht, oder einen vorgeschriebenen Eintrag, der fehlt. Bei cvc-complex-type.2.1 und cvc-complex-type.2.3 steht in einem Eintrag Text oder ein weiterer Eintrag, der dort nicht hingehört. Codes mit cvc-complex-type.3 und cvc-complex-type.4 betreffen eine Zusatzangabe an einem Eintrag, etwa die Währung an einem Betrag. Sie fehlt, ist dort nicht vorgesehen oder hat einen anderen Wert als vorgeschrieben. Die übrigen Codes, darunter cvc-complex-type.2.2, cvc-datatype und cvc-pattern, betreffen meist einen Wert in falscher Form, zum Beispiel ein Datum. Die Namen der Codes stammen aus dem Standard XML Schema des W3C, des Gremiums für Web-Standards.
Das Programm, das die Datei erzeugt hat, setzt einen Eintrag an eine Stelle, die das Format nicht vorsieht, oder lässt einen vorgeschriebenen Eintrag weg. Oder es schreibt einen Wert in einer Form, die das Format nicht kennt. Dasselbe kommt vor, wenn jemand die Datei nach dem Erzeugen von Hand geändert hat.
Schemafehler beheben.
Die Meldung nennt Zeile und Spalte in der XML-Datei. Eine XML-Datei öffnen Sie in einem Texteditor und sehen nach, welcher Eintrag oder Wert an dieser Stelle steht. Bei einer PDF-Rechnung zählen Zeile und Spalte in der XML-Datei, die in der PDF steckt. Diese Datei zeigt Ihnen der Texteditor nicht. Stammt die Rechnung unverändert aus einem Rechnungsprogramm, liegt die Ursache im Programm. Schicken Sie dem Hersteller den Code mit Zeile und Spalte.
DATEV
Stammt die Datei unverändert aus DATEV Auftragswesen next oder einem anderen DATEV-Programm, schicken Sie DATEV den Code mit Zeile und Spalte über einen Servicekontakt. Den Servicekontakt legen Sie auf der DATEV Wissensplattform ganz unten unter „Kundensupport“ an. Dafür brauchen Sie eine DATEV-Anmeldung, etwa DATEV SmartLogin.
Quelle: DATEV-Hilfe, Dok.-Nr. 1071593, abgerufen am 23.10.2026
Produktnamen sind Marken ihrer jeweiligen Inhaber. Wir sind kein Partner dieser Hersteller.
Beispiel aus einer Testrechnung.
Den maschinenlesbaren Teil einer E-Rechnung, die XML-Datei, gibt es in zwei Schreibweisen: UBL und CII. Eine UBL-Datei beginnt mit Invoice oder CreditNote, eine CII-Datei mit CrossIndustryInvoice. Auch ZUGFeRD steckt eine CII-Datei in die PDF.
Unsere zwei Testrechnungen sind Abwandlungen der Rechnung 01.01a aus der Testsuite der KoSIT für XRechnung (Lizenz Apache-2.0, Stand 2026-08-31). In jeder ist genau eine Zeile geändert.
Ein Eintrag, den es in UBL nicht gibt
<cbc:BuyerReference>04011000-12345-03</cbc:BuyerReference><cbc:Quatsch>x</cbc:Quatsch>
<cbc:BuyerReference>04011000-12345-03</cbc:BuyerReference>
Ein Datum in falscher Form
<cbc:IssueDate>test@beispiel.invalid</cbc:IssueDate>
<cbc:IssueDate>2016-04-04</cbc:IssueDate>
Im ersten Beispiel steht hinter der Käuferreferenz ein Eintrag namens Quatsch. Die Meldung zählt auf, welche Einträge das Schema an dieser Stelle erwartet hätte, etwa InvoicePeriod, OrderReference oder AccountingSupplierParty. Im zweiten steht im Rechnungsdatum eine Mail-Adresse statt eines Datums, und für dieselbe Stelle kamen zwei Codes.
Die Spalte zeigt bei beiden Dateien hinter den betroffenen Eintrag, nicht auf seinen Anfang: Spalte 76 liegt direkt nach <cbc:Quatsch>, Spalte 57 direkt nach </cbc:IssueDate>. Ich würde darum links von der gemeldeten Spalte suchen.
Was das für die Umsatzsteuer heißt.
Hält eine Datei die technischen Vorgaben ihres Formats nicht ein, nennt das Bundesfinanzministerium (BMF) das einen Formatfehler. Umsatzsteuerlich ist eine solche Datei dann eine sonstige Rechnung in einem anderen elektronischen Format, gleich welcher Art der Formatfehler ist (BMF-Schreiben vom 15.10.2025, Rn. 6a).
Quelle: BMF-Schreiben vom 15.10.2025, abgerufen am 23.10.2026
Diese Seite erklärt, was die Regel technisch verlangt, und nennt die allgemeine Rechtslage mit Quelle. Ob Ihre Rechnung steuerlich stimmt, etwa Steuersatz, Pflichtangaben und Vorsteuerabzug, beurteilt Ihr Steuerbüro. Das ist keine Steuerberatung.
Häufige Fragen.
Was bedeutet cvc-complex-type.2.4.a?
An der gemeldeten Stelle steht ein Eintrag, den das Schema dort nicht erwartet. Entweder gehört er an eine andere Stelle, oder vor ihm fehlt ein vorgeschriebener Eintrag. Hinter „One of“ zählt die Meldung auf, welche Einträge an dieser Stelle erlaubt wären.
Quelle: W3C, XML Schema Teil 1, abgerufen am 23.10.2026
Was bedeutet cvc-datatype-valid.1.2.1 bei einem Datum?
Der Wert hat nicht die Form, die das Schema für diesen Eintrag vorschreibt. In unserer Testrechnung steht im Rechnungsdatum eine Mail-Adresse statt 2016-04-04. Zum selben Eintrag kam in unserem Beispiel noch cvc-complex-type.2.2.
Quelle: W3C, XML Schema Teil 1, abgerufen am 23.10.2026
Verwandte Meldungen.
- ZUGFeRD-Profile MINIMUM, BASIC WL, BASIC, EXTENDED und 1.0 Bei manchen Profilen prüft der Check die Regeln gar nicht.
Rechnungen automatisch prüfen und für die Buchhaltung vorbereiten lassen?
Im Erstgespräch sehen wir uns an, wie bei Ihnen Rechnungen ankommen und wer sie heute prüft. Wie Software eine Eingangsrechnung liest, mit der Bestellung vergleicht und in DATEV für die Buchhaltung vorbereitet, zeigt unser Anwendungsbeispiel Rechnungen automatisch auslesen.
Erstgespräch buchenStand 02.11.2026, geprüft mit KoSIT-Validator 1.6.3, Konfiguration 2026-08-31 (XRechnung-Regeln 2.6.0, EN-16931-Regeln 1.3.16)