David Maus

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: