Schematron-Befehle beschreiben die regelbasierte Validierungssprache Schematron für XML-Dokumente. Sie wurde 1999 von Rick Jelliffe entwickelt, um Aussagen über das Vorhandensein oder Fehlen von Mustern in XML-Bäumen zu treffen, und ist als ISO/IEC 19757-3 standardisiert.
Grundprinzip
Anders als grammatikbasierte Schemas prüft Schematron Regeln mit XPath-Ausdrücken. Ein Schema besteht aus schema, pattern und rule-Blöcken:
<schema xmlns="http://purl.oclc.org/dsdl/schematron">
<pattern>
<rule context="buch">
<assert test="titel">Jedes Buch braucht einen Titel.</assert>
<report test="kapitel">Kapitel vorhanden (nur Information).</report>
</rule>
</pattern>
</schema>
assert erzeugt einen Fehler, wenn der test-Ausdruck falsch ist; report erzeugt eine Meldung, wenn er wahr ist. Das context-Attribut legt fest, auf welche Elemente die Regel angewendet wird.
Wichtige Elemente
schema,pattern,rule— Struktur des Schemasassert,report— Prüfungen mit XPath-testname,value-of— dynamische Textausgabe in Meldungenlet— Variable für wiederverwendbare XPath-Ausdrückephase/active— verschiedene Prüfphasen für dasselbe Schemainclude,ns,p— Modularisierung, Namespace- und Dokumentation
Stärken
Schematron glänzt bei Geschäftsregeln, die über die reine Struktur hinausgehen: Querfeld-Prüfungen über mehrere Elemente (Co-Occurrence Constraints), abhängige Werte und kontextabhängige Bedingungen. Die Validierungsergebnisse werden als SVRL (Schematron Validation Report Language) ausgegeben. Implementierungen laufen meist als XSLT-Transformationen, etwa ISO Schematron oder SchXslt; Oxygen XML Editor integriert Schematron direkt.
Schematron ergänzt grammatikbasierte Schemas wie DTD-Befehle, RELAX-NG-Befehle und XSD-Befehle — es prüft nicht die Struktur, sondern die Regeln darüber.
Verwandte Grundlagen: XPath-Befehle, XML-Befehle.