diff --git a/src/schema/common.rnc b/src/schema/common.rnc index 46c586aa2c819ce7e84c66c6c0a02176dea4664c..8da894f026302f2b43e4a86c3ee14e9f05e1efd4 100644 --- a/src/schema/common.rnc +++ b/src/schema/common.rnc @@ -14,6 +14,16 @@ namespace s = "http://purl.oclc.org/dsdl/schematron" [ 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#" ] + + s:pattern [ + s:rule [ + context = "@rdf:about | @rdf:resource" s:assert [ + test = "matches(., '^https?://')" + id = "general_001" + "Verwende immer vollständige URIs für Subjekte oder Referenzen" + ] + ] + ] ] start = rdfWrapper diff --git a/test/schema/common.xspec b/test/schema/common.xspec index 69b2d9dedbf1e53d4998ff64f8558c88cbf7f838..91bd4f5c30af32f5d0a9822e453dcdb9d4c52c76 100644 --- a/test/schema/common.xspec +++ b/test/schema/common.xspec @@ -32,4 +32,21 @@ </xspec:scenario> </xspec:scenario> + <xspec:scenario label="Verwende immer vollständige URIs für Subjekte oder Referenzen"> + <xspec:scenario label="Regel trifft zu"> + <xspec:context xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> + <Entity rdf:about="http://example.hab.de/entity"/> + </xspec:context> + <xspec:expect-not-assert id="general_001"/> + </xspec:scenario> + <xspec:scenario label="Regel nicht trifft zu"> + <xspec:context xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> + <Entity> + <Property rdf:resource="property"/> + </Entity> + </xspec:context> + <xspec:expect-assert id="general_001"/> + </xspec:scenario> + </xspec:scenario> + </xspec:description>