From 5f8aeae53048b3427f5d1406148d430c4f941a2d Mon Sep 17 00:00:00 2001
From: Martin de la Iglesia <iglesia@hab.de>
Date: Wed, 19 May 2021 09:03:10 +0000
Subject: [PATCH] Register-Split

---
 ortsregister.odd | 94 ++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 87 insertions(+), 7 deletions(-)

diff --git a/ortsregister.odd b/ortsregister.odd
index b1f00ba..46aa0f0 100644
--- a/ortsregister.odd
+++ b/ortsregister.odd
@@ -258,9 +258,67 @@
                                         )
                                         )
                                         
-                                        ) or ((//*[@xml:id eq $plcid1]) and ((//*[@xml:id eq $plcid2]) or 
+                                        ) 
                                         
-                                        ($wrkid1 ne '' and
+                                        or  ((//*[@xml:id eq $plcid1]) and
+                                        (
+                                        document('../Register/register-place/register-place-a.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-b.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-c.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-d.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-e.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-f.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-g.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-h.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-i.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-j.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-k.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-l.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-m.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-n.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-o.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-p.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-qr.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-s.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-t.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-u.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-v.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-w.xml')//*[@xml:id eq $plcid2] or
+                                        document('../Register/register-place/register-place-xyz.xml')//*[@xml:id eq $plcid2]
+                                        )
+                                        )                                       
+                                        
+                                        or  ((//*[@xml:id eq $plcid2]) and
+                                        (
+                                        document('../Register/register-place/register-place-a.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-b.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-c.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-d.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-e.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-f.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-g.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-h.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-i.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-j.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-k.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-l.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-m.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-n.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-o.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-p.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-qr.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-s.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-t.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-u.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-v.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-w.xml')//*[@xml:id eq $plcid1] or
+                                        document('../Register/register-place/register-place-xyz.xml')//*[@xml:id eq $plcid1]
+                                        )
+                                        )
+                                        
+                                        or 
+                                        
+                                        ((//*[@xml:id eq $plcid2]) and ($wrkid1 ne '') and
                                         (
                                         document('../Register/register-work/register-work-a.xml')//*[@xml:id eq $wrkid1] or
                                         document('../Register/register-work/register-work-b.xml')//*[@xml:id eq $wrkid1] or
@@ -290,7 +348,7 @@
                                         
                                         or
                                         
-                                        ($psnid ne '' and
+                                        ((//*[@xml:id eq $plcid2]) and ($psnid ne '') and
                                         (
                                         document('../Register/register-person/register-person-a.xml')//*[@xml:id eq $psnid] or
                                         document('../Register/register-person/register-person-b.xml')//*[@xml:id eq $psnid] or
@@ -316,9 +374,7 @@
                                         document('../Register/register-person/register-person-w.xml')//*[@xml:id eq $psnid] or
                                         document('../Register/register-person/register-person-xyz.xml')//*[@xml:id eq $psnid]
                                         )
-                                        )
-                                        
-                                        ))">ID ist in den Registern nicht vorhanden.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                                        )">ID ist in den Registern nicht vorhanden.</sch:assert> </sch:rule> </sch:pattern> </constraint>
                             </constraintSpec>
                         </attDef>
                     </attList>
@@ -561,7 +617,31 @@
                                 <rng:data type="anyURI"/>
                             </datatype>
                             <constraintSpec scheme="schematron" ident="rs-regex">
-                                <constraint> <sch:pattern> <sch:rule context="tei:rs/@ref"> <sch:let name="variable1" value="substring(.,5)"/> <sch:let name="variable2" value="substring(.,1,3)"/> <sch:let name="variable3" value="substring(.,2)"/> <sch:assert test="(//*[@xml:id eq $variable3] and matches($variable2, '^#')) or
+                                <constraint> <sch:pattern> <sch:rule context="tei:rs/@ref"> <sch:let name="variable1" value="substring(.,5)"/> <sch:let name="variable2" value="substring(.,1,3)"/> <sch:let name="variable3" value="substring(.,2)"/> <sch:assert test="((
+                                    document('../Register/register-place/register-place-a.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-b.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-c.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-d.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-e.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-f.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-g.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-h.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-i.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-j.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-k.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-l.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-m.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-n.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-o.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-p.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-qr.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-s.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-t.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-u.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-v.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-w.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-place/register-place-xyz.xml')//*[@xml:id eq $variable3]
+                                    )  and matches($variable2, '^#')) or
                                     
                                     (
                                     
-- 
GitLab