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