From a70f0ae230b4d4c69e7df5e1953179258912b5b6 Mon Sep 17 00:00:00 2001
From: David Maus <maus@hab.de>
Date: Mon, 22 Jan 2018 14:32:31 +0100
Subject: [PATCH] Regelsatz: Fehler, wenn Metadatum nicht exportiert

---
 src/ruleset.rnc    | 10 ++++++++++
 test/ruleset.xspec | 23 +++++++++++++++++++++++
 2 files changed, 33 insertions(+)

diff --git a/src/ruleset.rnc b/src/ruleset.rnc
index 3f2a9d0..aae0888 100644
--- a/src/ruleset.rnc
+++ b/src/ruleset.rnc
@@ -18,6 +18,16 @@ Preferences =
    }
 
 MetadataTypeDef =
+   [
+      s:pattern [
+         s:rule [
+            context = "metadata[parent::DocStrctType]" s:assert [
+               test = "/Preferences/METS/Metadata/InternalName = ."
+               "Das Metadatum '" s:value-of [ select = "." ] "' wird nicht exportiert."
+            ]
+         ]
+      ]
+   ]
    element MetadataType {
       attribute type { "person" | "identifier" }?,
       (
diff --git a/test/ruleset.xspec b/test/ruleset.xspec
index 26088d6..a3a01af 100644
--- a/test/ruleset.xspec
+++ b/test/ruleset.xspec
@@ -32,6 +32,11 @@
           <DocStrctType>
             <metadata>is-defined</metadata>
           </DocStrctType>
+          <METS>
+            <Metadata>
+              <InternalName>is-defined</InternalName>
+            </Metadata>
+          </METS>
         </Preferences>
       </context>
       <expect-not-assert/>
@@ -42,6 +47,24 @@
           <DocStrctType>
             <metadata>is-not-defined</metadata>
           </DocStrctType>
+          <METS>
+            <Metadata>
+              <InternalName>is-defined</InternalName>
+            </Metadata>
+          </METS>
+        </Preferences>
+      </context>
+      <expect-assert/>
+    </scenario>
+    <scenario label="Metadatum wird nicht exportiert">
+      <context>
+        <Preferences xmlns="">
+          <MetadataType>
+            <Name>is-defined</Name>
+          </MetadataType>
+          <DocStrctType>
+            <metadata>is-not-defined</metadata>
+          </DocStrctType>
         </Preferences>
       </context>
       <expect-assert/>
-- 
GitLab