Schematron Regeln programmieren?

1 Antwort

Regel 1: Der Dateiname in related-atricle muss immer mit der Endung ".pdf" enden.

Der Testausdruck sollte folgendermaßen lauten:

ends-with(., '.pdf')

Mit dem Punkt zeigst du auf das aktuelle Element.

Regel 2: Die Elemente volume und issue dürfen ausschließlich Zahlen enthalten.

Auch hierfür wird als erstes Argument der Punkt angegeben. Er zeigt dann je Regel auf volume oder issue.

matches(., '^[0-9]$')
Regel 3: Die letzte Seite muss größer als die erste Seite sein. < und >

Einmal angenommen, die zu prüfende XML-Struktur ist so aufgebaut:

<pages>
  <fpage>1</fpage>
  <lpage>2</lpage>
</pages>

Dann könnte man mittels preceding-sibling ausgehend vom lpage-Element das fpage-Element selektieren und die Werte miteinander vergleichen.

<rule context="lpage">
  <assert test=". &gt; preceding-sibling::fpage">Failed</assert>
</rule>