From 566ec5a8475e94539e11e7a3d77281bc8c35e162 Mon Sep 17 00:00:00 2001
From: David Maus <maus@hab.de>
Date: Fri, 20 Oct 2017 14:18:59 +0200
Subject: [PATCH] =?UTF-8?q?Verlange=20vollst=C3=A4ndig=20URIs=20f=C3=BCr?=
 =?UTF-8?q?=20@rdf:about=20und=20@rdf:resource?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/schema/common.rnc    | 10 ++++++++++
 test/schema/common.xspec | 17 +++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/src/schema/common.rnc b/src/schema/common.rnc
index 46c586aa2..8da894f02 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 69b2d9ded..91bd4f5c3 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>
-- 
GitLab