From fc8525d45429417bc9808ccc0dce48027f82249e Mon Sep 17 00:00:00 2001
From: Martin de la Iglesia <iglesia@hab.de>
Date: Wed, 3 Nov 2021 13:40:18 +0000
Subject: [PATCH] Bibliographie-Split

---
 personenregister.odd | 112 ++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 106 insertions(+), 6 deletions(-)

diff --git a/personenregister.odd b/personenregister.odd
index 18f5dd2..fb8cf4e 100644
--- a/personenregister.odd
+++ b/personenregister.odd
@@ -281,10 +281,10 @@
                         <constraint> <sch:assert test="matches(.,'(^http://d-nb\.info/gnd/[0-9]{7,9}-?[0-9]X?$)|(^http://vocab\.getty\.edu/ulan/[0-9]+$)|(^https://www\.bbkl\.de/index\.php/frontend/lexicon/)|(^https?://www\.deutsche-biographie\.de/.+\S$)|(^http://ta\.sandrart\.net/-person-[0-9]+$)|(^https://rkd\.nl/explore/artists/[0-9]+$)')">Zeichenkette entspricht nicht den Vorgaben.</sch:assert> </constraint>
                     </constraintSpec>
                     <constraintSpec scheme="schematron" ident="docavailable1">
-                        <constraint><sch:rule context="tei:idno[@type='URI'][contains(.,'#')]"><sch:assert test="unparsed-text-available(substring-before(.,'#'))">ungültiger Hyperlink</sch:assert></sch:rule></constraint>
+                        <constraint><sch:rule context="tei:idno[@type='URI'][contains(.,'#')]"><sch:assert role="warning" test="unparsed-text-available(substring-before(.,'#'))">ungültiger Hyperlink</sch:assert></sch:rule></constraint>
                     </constraintSpec>
                     <constraintSpec scheme="schematron" ident="docavailable2">
-                        <constraint><sch:rule context="tei:idno[@type='URI'][not(contains(.,'#'))]"><sch:assert test="unparsed-text-available(.)">ungültiger Hyperlink</sch:assert></sch:rule></constraint>
+                        <constraint><sch:rule context="tei:idno[@type='URI'][not(contains(.,'#'))]"><sch:assert role="warning" test="unparsed-text-available(.)">ungültiger Hyperlink</sch:assert></sch:rule></constraint>
                     </constraintSpec>
                     <attList>
                         <attDef ident="type">
@@ -497,7 +497,32 @@ document('../Register/register-org/register-org-w.xml')//*[@xml:id eq $orgid] or
 document('../Register/register-org/register-org-xyz.xml')//*[@xml:id eq $orgid]
 )
                                         
-) or (document('../Register/bibliography.xml')//*[@xml:id eq $litid]))">ID ist in den Registern nicht vorhanden.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                                        ) or ($litid ne '' and
+                                        (
+                                        document('../Register/bibliography/bibliography-a.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-b.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-c.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-d.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-e.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-f.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-g.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-h.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-i.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-j.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-k.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-l.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-m.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-n.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-o.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-p.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-qr.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-s.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-t.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-u.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-v.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-w.xml')//*[@xml:id eq $litid] or
+                                        document('../Register/bibliography/bibliography-xyz.xml')//*[@xml:id eq $litid]
+                                        )))">ID ist in den Registern nicht vorhanden.</sch:assert> </sch:rule> </sch:pattern> </constraint>
                                 
                             </constraintSpec>
                             
@@ -797,7 +822,32 @@ document('../Register/register-org/register-org-xyz.xml')//*[@xml:id eq $orgid]
                                 <rng:data type="anyURI"/>
                             </datatype>
                             <constraintSpec scheme="schematron" ident="ptr-regex">
-                                <constraint> <sch:pattern> <sch:rule context="tei:ptr"> <sch:let name="variable" value="substring(./@target,5)"/> <sch:assert test="(document('../Register/bibliography.xml')//*[@xml:id eq $variable])">ID "<sch:value-of select="$variable"/>" ist in der Bibliographie nicht vorhanden.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                                <constraint> <sch:pattern> <sch:rule context="tei:ptr"> <sch:let name="variable" value="substring(./@target,5)"/> <sch:assert test="$variable ne '' and
+                                    (
+                                    document('../Register/bibliography/bibliography-a.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-b.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-c.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-d.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-e.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-f.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-g.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-h.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-i.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-j.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-k.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-l.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-m.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-n.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-o.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-p.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-qr.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-s.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-t.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-u.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-v.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-w.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/bibliography/bibliography-xyz.xml')//*[@xml:id eq $variable]
+                                    )">ID "<sch:value-of select="$variable"/>" ist in der Bibliographie nicht vorhanden.</sch:assert> </sch:rule> </sch:pattern> </constraint>
                             </constraintSpec>
                         </attDef>
                     </attList>
@@ -827,7 +877,32 @@ document('../Register/register-org/register-org-xyz.xml')//*[@xml:id eq $orgid]
                                 <rng:data type="anyURI"/>
                             </datatype>
                             <constraintSpec scheme="schematron" ident="ref-regex">
-                                <constraint> <sch:pattern> <sch:rule context="tei:ref[parent::tei:bibl]"> <sch:let name="variable1" value="substring(./@target,5)"/> <sch:let name="variable2" value="substring(./@target,1,3)"/> <sch:assert test="(document('../Register/bibliography.xml')//*[@xml:id eq $variable1] and $variable2 eq 'lit')">ID "<sch:value-of select="$variable1"/>" ist in der Literaturverzeichnisdatei nicht vorhanden.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                                <constraint> <sch:pattern> <sch:rule context="tei:ref[parent::tei:bibl]"> <sch:let name="variable1" value="substring(./@target,5)"/> <sch:let name="variable2" value="substring(./@target,1,3)"/> <sch:assert test="($variable1 ne '' and
+                                    (
+                                    document('../Register/bibliography/bibliography-a.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-b.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-c.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-d.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-e.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-f.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-g.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-h.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-i.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-j.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-k.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-l.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-m.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-n.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-o.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-p.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-qr.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-s.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-t.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-u.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-v.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-w.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/bibliography/bibliography-xyz.xml')//*[@xml:id eq $variable1]
+                                    ) and $variable2 eq 'lit')">ID "<sch:value-of select="$variable1"/>" ist in keiner Literaturverzeichnisdatei vorhanden.</sch:assert> </sch:rule> </sch:pattern> </constraint>
                             </constraintSpec>
                         </attDef>
                     </attList>
@@ -966,7 +1041,32 @@ document('../Register/register-work/register-work-xyz.xml')//*[@xml:id eq $varia
 
 and $variable2 eq 'wrk')
 
-or (document('../Register/bibliography.xml')//*[@xml:id eq $variable1] and $variable2 eq 'lit')">ID ist in der angegebenen Registerdatei nicht vorhanden.</sch:assert> </sch:rule>
+or ($variable1 ne '' and
+(
+document('../Register/bibliography/bibliography-a.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-b.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-c.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-d.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-e.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-f.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-g.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-h.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-i.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-j.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-k.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-l.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-m.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-n.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-o.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-p.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-qr.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-s.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-t.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-u.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-v.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-w.xml')//*[@xml:id eq $variable1] or
+document('../Register/bibliography/bibliography-xyz.xml')//*[@xml:id eq $variable1]
+) and $variable2 eq 'lit')">ID ist in der angegebenen Registerdatei nicht vorhanden.</sch:assert> </sch:rule>
                          </sch:pattern> </constraint>
                             </constraintSpec>
                         </attDef>
-- 
GitLab