Schematron (ISO/IEC 19757-3) ist eine XML-basierte Regelsprache, mit der sich inhaltliche und logische Bedingungen an XML-Dokumente formulieren lassen. Anders als XML-Schema, das vor allem die Struktur prüft, kann Schematron komplexe Bedingungen über mehrere Felder hinweg ausdrücken.
Im Kontext der E-Rechnung wird Schematron eingesetzt, um die Geschäftsregeln von EN 16931, XRechnung und Peppol BIS zu prüfen.
Beispiel für eine Geschäftsregel
Wenn die Steuerkategorie
S(Standard) ist, muss ein Steuersatz größer 0 angegeben sein.
Diese Regel lässt sich nicht in einem einfachen Schema abbilden, in Schematron schon:
<rule context="cac:TaxCategory[cbc:ID = 'S']">
<assert test="cbc:Percent > 0">
[BR-S-05] Standard-Steuersatz muss größer 0 sein
</assert>
</rule>
Validierungsketten
Eine vollständige E-Rechnungsprüfung läuft in mehreren Schritten ab:
- XML-Schema prüft die Struktur (sind Pflichtfelder vorhanden, Datentypen korrekt?)
- EN 16931-Schematron prüft die Geschäftsregeln der Norm
- XRechnung-Schematron prüft zusätzliche nationale Anforderungen
- Peppol-Schematron (optional) prüft Peppol-spezifische Regeln
KOSIT-Validator
Die KOSIT stellt einen offenen Schematron-basierten Validator bereit, der von vielen Werkzeugen – auch von unseren Validatoren – als Referenz genutzt wird.