SCHEMA Blog

Corporate Blog der SCHEMA GmbH

Qualitätssicherung mit Schematron

Hinterlasse einen Kommentar

Sie kennen das: Ihre Dokumente haben sämtliche Reviews durchlaufen, alle Korrekturen sind nach bestem Wissen und Gewissen eingearbeitet. Das Dokument kommt zurück vom Druck. Der Erste, der es in die Hand nimmt, findet auf Anhieb mindestens drei Fehler. Und zwar genau die gleichen, die alle Prozessbeteiligten schon beim letzten Mal übersehen hatten.

Oder: Ihr Dienstleister liefert die von ihm erstellten Dokumente knapp vor Redaktionsschluss und wieder sind nicht alle Vorgaben aus dem Redaktionsleitfaden berücksichtigt.

Mit dem neuen Schematron-Modul von SCHEMA ST4 2012 R2 können Sie sogenannte “Business Rules” komfortabel formulieren und verwalten und vor der finalen Produktion – natürlich auch zu jedem anderen Zeitpunkt – XML-Dokumente automatisiert inhaltlich und strukturell prüfen.

Schematron klingt zwar wie SCHEMA, ist es aber nicht: Schematron ist eine Schemasprache zur kontextbezogenen Validierung von XML-Dokumenten, die 1999 von Rick Jelliffe am Academia Sinica Computing Centre in Taipeh, Taiwan entwickelt wurde. Seit Mai 2006 ist Schematron offizieller ISO/IEC-Standard Standard (ISO/IEC 19757-3:2006).

Für die Definition von Schematron-Regeln sind ausschließlich XPath-Kenntnisse erforderlich. Die Sprache ist über XSL-Transformationen implementiert, erfordert also keine Anpassungen der DTD oder des XML-Schemas. Mit Schematron können weite Teile eines Redaktionsleitfadens abgebildet werden.

Wie sieht die Regelsyntax aus?

Allgemein formuliert sehen die Regeln so aus:

Schematron Syntax

 

Woher die XPath-Ausdrücke für den Kontext und die Bedingung nehmen?

Nicht jeder beherrscht XPath so, dass er die Regeln auf Anhieb selbst formulieren könnte. Es gibt mehrere Herangehensweisen: Die akademische: Erarbeiten der Grundlagen mit Hilfe eines lehrreichen Buchs und anschließendes Anwenden des Gelernten. Die pragmatische: Beispielregeln, die ähnliche Prüfungen durchführen, kopieren und anpassen.
Wie genau die zu prüfenden Elemente in den Schematron-Regeln adressiert werden müssen, erschließt sich beispielsweise aus einer (Test)-XML-Produktion. In der Standard ST4 DTD finden sich dort unter anderem die Listenelemente <li> innerhalb geordneter <ol> und ungeordneter <ul> Listen, Absätze <p>, Inlineformate wie kursiv <i> und fett <b>, Informationsklassen wie „class=InfoType02“ oder Knotenklassen wie „type=TextNode“.

Beispiel: Eine Liste muss zwischen 2 und 7 Listenpunkten enthalten

Schematron Beispiel

Wie kommen die Regeln ins System?

Die Regeln werden im Rich oder Architect Client in einem eigenen Viewlet angelegt, angezeigt, verwaltet und zur Prüfung ausgewählt. Ausgeführt werden können sie auch im Thin Client.

schematron_rules

ST4 bietet zwei Modi zur Regelerstellung an: den Auto-Modus und den Experten-Modus. Im Auto-Modus füllen Sie die entsprechenden Felder aus und ST4 setzt daraus die eigentliche Schematron-Regel zusammen, im Experten-Modus geben Sie die Regel gemäß der Syntax direkt ein.
Die Regeln werden über ihre Eigenschaften nach Schwere der Regelverletzung klassifiziert:

schematron_properties

Wie werden die Regeln angewandt?

Im ST4 Reporting Center findet sich der zugehörige Schematron-Report: das Projekt im Projektbaum markieren, im Report den gewünschten Variantenfilter (so vorhanden) und die Sprache, die geprüft werden soll, auswählen. Im Schematron Viewlet die Regel oder den Regelsatz markieren und im Report die Prüfung über die zugehörige Schaltfläche starten.

schematron_start_report

schematron_report

Ein Klick auf den zugehörigen Link zeigt den Knoten an, der die Regelverletzung verursacht hat.

Fazit

Anders als beispielsweise DTD oder XML Schema dient Schematron nicht zur Definition, sondern zur Validierung von Inhalten in XML-Dokumenten. Es verwendet keine formale Grammatik, sondern findet Muster in der Dokumentstruktur. Dadurch ist es möglich, Regeln zu definieren, die mit herkömmlichen Schemasprachen, die auf Grammatiken basieren, nicht möglich wären. Dennoch sollte Schematron in erster Linie als Ergänzung, nicht als Konkurrenz zu anderen Schemasprachen verstanden werden.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s