Today I Learned: Schematron in RelaxNG/Compact einbetten
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:
- <oXygen/> 18.1 validiert integrierter Schematron-Regeln nur in der XML-Syntax
- Emacs' rnc-mode rückt die einer Annotation folgenden Definitionen nicht richtig ein