Skip to content
David Maus M. A.

Today I Learned: Schematron in RelaxNG/Compact einbetten

David Maus, 18. Oct 2017

Die Syntax für Annotationen in der kompakten Syntax von RelaxNG ist etwas gewöhnungsbedürftig, erlaubt aber das Einbinden von Schematron-Regeln, mit denen weitergehende Restriktionen geprüft werden können.

internalEntity =
   [
      s:pattern [
         s:rule [
            context = "*[@rdf:about]" s:assert [
               test = "matches(@rdf:about, '^http://([^.]+\.)?hab\.de')"
               "Verwende <owl:sameAs> für Statements zu Entitäten, die nicht unter der Kontrolle der HAB liegen."
            ]
         ]
      ]
   ]
attribute rdf:about { xsd:anyURI }
 & Label+

Im Kopf der Grammatik müssen die Schematron-Namensraumbindungen vorgenommen werden, da Trang sie nicht automatisch ergänzt.

[
   s:ns [ prefix = "rdf" uri = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" ]
   s:ns [ prefix = "owl" uri = "http://www.w3.org/2002/07/owl#" ]
]

Und merke: