diff --git a/bibliography.odd b/bibliography.odd
new file mode 100644
index 0000000000000000000000000000000000000000..30f4a4f78658908f828805eecb69977f25350077
--- /dev/null
+++ b/bibliography.odd
@@ -0,0 +1,466 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml"
+    schematypens="http://purl.oclc.org/dsdl/schematron"?>
+<TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
+    <teiHeader>
+        <fileDesc>
+            <titleStmt>
+                <title>ODD zur Bibliographie der Edition der Reise- und Sammlungsbeschreibungen Philipp Hainhofers (1578-1647)</title>
+            </titleStmt>
+            <publicationStmt>
+                <publisher>Herzog August Bibliothek Wolfenbüttel</publisher>
+                <date when="2020"/>
+                <availability>
+                    <licence target="https://creativecommons.org/licenses/by-sa/4.0/">
+                        <p>Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</p>
+                    </licence>
+                </availability>
+            </publicationStmt>
+            <sourceDesc>
+                <p>Born digital: no previous source exists.</p>
+            </sourceDesc>
+        </fileDesc>
+    </teiHeader>
+    <text>
+        <body>
+            <schemaSpec ident="bibliography">
+                
+                <elementSpec ident="availability">
+                    <content>
+                        <rng:ref name="licence"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="bibl">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="note"/>
+                        </rng:oneOrMore>
+                        <rng:ref name="seg"/>
+                        <rng:zeroOrMore>
+                            <rng:ref name="ptr"/>
+                        </rng:zeroOrMore>
+                        <rng:zeroOrMore>
+                            <rng:ref name="linkGrp"/>
+                        </rng:zeroOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="xml:id" usage="req">
+                            <datatype>
+                                <rng:data type="ID"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="sortKey" usage="req">
+                            <datatype>
+                                <rng:data type="string"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="sortkey-regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:bibl/@sortKey"> <sch:assert test="matches(.,'^[0-9a-z_\-]+$')">Der Sortierschlüssel darf nur Kleinbuchstaben, Ziffern, Bindestriche und Unterstriche enthalten.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="body">
+                    <content>
+                        <rng:ref name="listBibl"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="date">
+                    <content>
+                        <empty/>
+                    </content>
+                    <attList>                        
+                        <attDef ident="when" usage="req">
+                            <datatype>                          
+                                <rng:data type="gYear"/>                                
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="encodingDesc">
+                    <content>
+                        <rng:ref name="listPrefixDef"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="fileDesc">
+                    <content>
+                        <rng:ref name="titleStmt"/>
+                        <rng:ref name="publicationStmt"/>
+                        <rng:ref name="sourceDesc"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="licence">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="req">
+                            <valList type="closed">
+                                <valItem ident="https://creativecommons.org/licenses/by-sa/4.0/"/>                                
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="link">
+                    <content>
+                        <rng:empty/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="req">
+                            <datatype minOccurs="2" maxOccurs="2">
+                                <rng:data type="token"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="active">
+                                <constraint> <sch:pattern> <sch:rule context="tei:link[parent::tei:linkGrp/@ana eq 'http://erlangen-crm.org/current/P70_documents']">
+                                    <sch:let name="litid" value="substring-after(substring-before(./@target,' '),'#')"/>
+                                    <sch:let name="psnid" value="substring-after(./@target,' psn:')"/>
+                                    <sch:let name="plcid" value="substring-after(./@target,' plc:')"/>
+                                    <sch:let name="wrkid" value="substring-after(./@target,' wrk:')"/>
+                                    <sch:let name="orgid" value="substring-after(./@target,' org:')"/>
+                                    
+                                    <sch:assert test="(//*[@xml:id eq $litid]) and (
+                                        
+                                        ($wrkid ne '' and
+                                        (
+                                        document('../Register/register-work/register-work-a.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-b.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-c.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-d.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-e.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-f.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-g.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-h.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-i.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-j.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-k.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-l.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-m.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-n.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-o.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-p.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-qr.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-s.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-t.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-u.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-v.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-w.xml')//*[@xml:id eq $wrkid] or
+                                        document('../Register/register-work/register-work-xyz.xml')//*[@xml:id eq $wrkid]
+                                        )) 
+                                        
+                                        or (document('../Register/register-place.xml')//*[@xml:id eq $plcid]) or (                                        
+                                        
+                                        $orgid ne '' and
+                                        (
+                                        document('../Register/register-org/register-org-a.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-b.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-c.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-d.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-e.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-f.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-g.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-h.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-i.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-j.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-k.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-l.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-m.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-n.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-o.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-p.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-qr.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-s.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-t.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-u.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-v.xml')//*[@xml:id eq $orgid] or
+                                        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 
+                                        
+                                        ($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
+                                        document('../Register/register-person/register-person-c.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-d.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-e.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-f.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-g.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-h.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-i.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-j.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-k.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-l.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-m.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-n.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-o.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-p.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-qr.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-s.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-t.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-u.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-v.xml')//*[@xml:id eq $psnid] or
+                                        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>
+                                
+                            </constraintSpec>
+                            <constraintSpec scheme="schematron" ident="passive">
+                                <constraint> <sch:pattern> <sch:rule context="tei:link[(parent::tei:linkGrp/@ana eq 'http://purl.org/dc/terms/references') or (parent::tei:linkGrp/@ana eq 'http://schema.org/mentions')]">
+                                    <sch:let name="litid" value="substring-after(./@target,' #')"/>
+                                    
+                                    <sch:assert test="//*[@xml:id eq $litid]">ID fehlerhaft.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                                
+                            </constraintSpec>
+                            <constraintSpec scheme="schematron" ident="creator">
+                                <constraint> <sch:pattern> <sch:rule context="tei:link[parent::tei:linkGrp/@ana eq 'http://purl.org/dc/elements/1.1/creator']">
+                                    <sch:let name="litid" value="substring-after(substring-before(./@target,' '),'#')"/>
+                                    <sch:let name="psnid" value="substring-after(./@target,' psn:')"/>
+                                    
+                                    <sch:assert test="(//*[@xml:id eq $litid]) 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
+                                        document('../Register/register-person/register-person-c.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-d.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-e.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-f.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-g.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-h.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-i.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-j.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-k.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-l.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-m.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-n.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-o.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-p.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-qr.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-s.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-t.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-u.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-v.xml')//*[@xml:id eq $psnid] or
+                                        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>
+                                
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="linkGrp">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="link"/>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="targFunc" usage="req">
+                            <valList type="closed">
+                                <valItem ident="active passive"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="ana" usage="req">
+                            <valList type="closed">
+                                <valItem ident="http://schema.org/mentions"/>
+                                <valItem ident="http://erlangen-crm.org/current/P70_documents"/>
+                                <valItem ident="http://purl.org/dc/terms/references"/>
+                                <valItem ident="http://purl.org/dc/elements/1.1/creator"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="listBibl">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="bibl"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="listPrefixDef">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="prefixDef"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="note">
+                    <content>
+                        <textNode/>
+                    </content>
+                    <attList>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="change"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="p">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="prefixDef">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                    <attList>
+                        <attDef ident="ident" usage="req">
+                            <valList type="closed">
+                                <valItem ident="psn"/>
+                                <valItem ident="plc"/>
+                                <valItem ident="wrk"/>
+                                <valItem ident="org"/>
+                                <valItem ident="transcr"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="matchPattern" usage="req">
+                            <valList type="closed">
+                                <valItem ident="(.+)"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="replacementPattern" usage="req">
+                            <valList type="closed">  
+                                <valItem ident="https://hainhofer.hab.de/register/koerperschaftsregister/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/register/personen/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/register/objekte/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/register/orte/$1"/>
+                                
+                                <valItem ident="../XML-Dateien/$1"/> <!-- online nach dem Muster https://hainhofer.hab.de/reiseberichte/muenchen1603#fol127v usw. -->
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="ptr">
+                    <content>
+                        <rng:empty/>
+                    </content>
+                    <constraintSpec scheme="schematron" ident="urlcheck1">
+                        <constraint><sch:rule context="tei:ptr[@type='fulltext']"><sch:report test="matches(@target,'\s$')">URL darf nicht mit Leerzeichen enden</sch:report></sch:rule></constraint>
+                    </constraintSpec>
+                    <constraintSpec scheme="schematron" ident="urlcheck2">
+                        <constraint><sch:rule context="tei:ptr[@type='fulltext']"><sch:assert test="matches(@target,'^http://') or matches(@target,'^https://')">URL muss mit "http://" oder "https://" beginnen</sch:assert></sch:rule></constraint>
+                    </constraintSpec>
+                    <constraintSpec scheme="schematron" ident="cat">
+                        <constraint><sch:rule context="tei:ptr[matches(@type,'^opac$|^gbv$|^bvb$')]"><sch:assert test="not(preceding-sibling::tei:ptr[matches(@type,'^opac$|^gbv$|^bvb$')])">Bitte nur 1 Katalogisat verlinken.</sch:assert></sch:rule></constraint>
+                    </constraintSpec>
+                    <constraintSpec scheme="schematron" ident="bvbcheck">
+                        <constraint><sch:rule context="tei:ptr[matches(@type,'^bvb$')]"><sch:assert test="matches(@cRef,'^BV[0-9]+')">ID muss mit "BV" beginnen.</sch:assert></sch:rule></constraint>
+                    </constraintSpec>
+                    <attList>
+                        <attDef ident="target" usage="opt">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="cRef" usage="opt">
+                            <datatype>
+                                <rng:text/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="fulltext"/>
+                                <valItem ident="opac"/>
+                                <valItem ident="gbv"/>
+                                <valItem ident="bvb"/>
+                                <valItem ident="isPartOf"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="publicationStmt">
+                    <content>
+                        <rng:ref name="publisher"/>
+                        <rng:ref name="date"/>
+                        <rng:ref name="availability"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="publisher">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="seg">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="ptr"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                    <constraintSpec scheme="schematron" ident="regex">
+                        <constraint> <sch:pattern><sch:rule context="tei:seg[text() ne '']"><sch:assert test="matches(.,'^\S[\s\S]+\S$')">darf nicht mit Leerzeichen beginnen oder enden</sch:assert></sch:rule></sch:pattern> </constraint>
+                    </constraintSpec>
+                </elementSpec>
+                
+                <elementSpec ident="sourceDesc">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="TEI">
+                    <content>
+                        <rng:ref name="teiHeader"/>
+                        <rng:ref name="text"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="teiHeader">
+                    <content>
+                        <rng:ref name="fileDesc"/>
+                        <rng:ref name="encodingDesc"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="text">
+                    <content>
+                        <rng:ref name="body"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="title">
+                    <content>
+                        <rng:text/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="titleStmt">
+                    <content>
+                        <rng:ref name="title"/>
+                    </content>
+                </elementSpec>
+                
+            </schemaSpec>
+        </body>
+    </text>
+</TEI>
diff --git a/koerperschaftsregister.odd b/koerperschaftsregister.odd
new file mode 100644
index 0000000000000000000000000000000000000000..a9c52ea11e75e5c10708b4276c4b968fec3d8226
--- /dev/null
+++ b/koerperschaftsregister.odd
@@ -0,0 +1,734 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml"
+    schematypens="http://purl.oclc.org/dsdl/schematron"?>
+<TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
+    <teiHeader>
+        <fileDesc>
+            <titleStmt>
+                <title>ODD für das Körperschaftsregister in der Edition der Reise- und Sammlungsbeschreibungen Philipp Hainhofers (1578-1647)</title>
+            </titleStmt>
+            <publicationStmt>
+                <publisher>Herzog August Bibliothek Wolfenbüttel</publisher>
+                <date when="2020"/>
+                <availability>
+                    <licence target="https://creativecommons.org/licenses/by-sa/4.0/">
+                        <p>Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</p>
+                    </licence>
+                </availability>
+            </publicationStmt>
+            <sourceDesc>
+                <p>Born digital: no previous source exists.</p>
+            </sourceDesc>
+        </fileDesc>
+    </teiHeader>
+    <text>
+        <body>
+            <schemaSpec ident="koerperschaftsregister">
+                
+                <elementSpec ident="availability">
+                    <content>
+                        <rng:ref name="licence"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="bibl">
+                    <content>
+                        <alternate>
+                            <sequence>
+                                <elementRef key="ptr"/>
+                                <elementRef key="citedRange" minOccurs="0"/>
+                            </sequence>
+                            <sequence>
+                                <textNode/>
+                                <elementRef key="biblScope" minOccurs="0" maxOccurs="unbounded"/>
+                            </sequence>
+                            <sequence>
+                                <elementRef key="ref"/>
+                                <textNode/>
+                                <elementRef key="citedRange" minOccurs="0"/>
+                            </sequence>
+                        </alternate>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="biblScope">
+                    <content>
+                        <alternate maxOccurs="unbounded">
+                            <textNode/>
+                            <elementRef key="rs"/>
+                        </alternate>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="body">
+                    <content>
+                        <rng:ref name="listOrg"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="citedRange">
+                    <content>
+                        <rng:text/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="opt">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="date">
+                    <content>
+                        <empty/>
+                    </content>
+                    <attList>                        
+                        <attDef ident="when" usage="req">
+                            <datatype>                          
+                                <rng:data type="gYear"/>                                
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="encodingDesc">
+                    <content>
+                        <rng:ref name="listPrefixDef"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="fileDesc">
+                    <content>
+                        <rng:ref name="titleStmt"/>
+                        <rng:ref name="publicationStmt"/>
+                        <rng:ref name="sourceDesc"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="hi">
+                    <content>
+                        <rng:mixed>
+                            <rng:zeroOrMore>
+                                <rng:choice>
+                                    <rng:ref name="rs"/>
+                                    <rng:ref name="bibl"/>
+                                    <rng:ref name="ref"/>
+                                </rng:choice>
+                            </rng:zeroOrMore>
+                        </rng:mixed>
+                    </content>
+                    <attList>
+                        <attDef ident="rendition" usage="req">
+                            <valList type="closed">
+                                <valItem ident="#i"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="idno">
+                    <content>
+                        <rng:text/>
+                    </content>
+                    <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>
+                    </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>
+                    </constraintSpec>
+                     <constraintSpec scheme="schematron" ident="regex">
+                         <constraint> <sch:assert test="matches(.,'^\S[\s\S]+\S$')">darf nicht mit Leerzeichen beginnen oder enden</sch:assert> </constraint>
+                        </constraintSpec>
+                    <attList>
+                        <attDef ident="type">
+                            <valList type="closed">
+                                <valItem ident="URI"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="licence">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="req">
+                            <valList type="closed">
+                                <valItem ident="https://creativecommons.org/licenses/by-sa/4.0/"/>                                
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="link">
+                    <content>
+                        <rng:empty/>
+                    </content>
+                    <attList>
+                        <attDef ident="ana" usage="req">
+                            <valList type="closed">
+                                <valItem ident="http://purl.org/dc/elements/1.1/creator"/>
+                                <valItem ident="http://erlangen-crm.org/current/P74_has_current_or_former_residence"/>
+                                <valItem ident="http://erlangen-crm.org/current/P62_depicts"/>
+                                <valItem ident="http://erlangen-crm.org/current/P107_has_current_or_former_member"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="target" usage="req">
+                            <datatype>
+                                <rng:data type="string"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="active">                            
+                                <constraint> <sch:pattern> <sch:rule context="tei:link[(@ana eq 'http://erlangen-crm.org/current/P107_has_current_or_former_member') or (@ana eq 'http://erlangen-crm.org/current/P74_has_current_or_former_residence')]">
+                                    <sch:let name="orgid" value="substring-after(substring-before(./@target,' '),'#')"/>
+                                    <sch:let name="psnid" value="substring-after(./@target,' psn:')"/>
+                                    <sch:let name="plcid" value="substring-after(./@target,' plc:')"/>
+                                    <sch:assert test="(
+                                        
+$orgid ne '' and
+(
+document('../Register/register-org/register-org-a.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-b.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-c.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-d.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-e.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-f.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-g.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-h.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-i.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-j.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-k.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-l.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-m.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-n.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-o.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-p.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-qr.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-s.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-t.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-u.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-v.xml')//*[@xml:id eq $orgid] or
+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]
+)
+                                        
+                                        ) 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
+                                        document('../Register/register-person/register-person-c.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-d.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-e.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-f.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-g.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-h.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-i.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-j.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-k.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-l.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-m.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-n.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-o.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-p.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-qr.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-s.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-t.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-u.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-v.xml')//*[@xml:id eq $psnid] or
+                                        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]
+                                        )
+                                        )
+                                        
+                                        or (document('../Register/register-place.xml')//*[@xml:id eq $plcid]))">ID ist in den Registern nicht vorhanden.</sch:assert>
+                                </sch:rule>
+                                </sch:pattern>
+                                </constraint>
+                            </constraintSpec>
+                            
+                            <constraintSpec scheme="schematron" ident="passive">
+                                <constraint> <sch:pattern> <sch:rule context="tei:link[(@ana eq 'http://purl.org/dc/elements/1.1/creator') or (@ana eq 'http://erlangen-crm.org/current/P62_depicts')]">
+                                    <sch:let name="wrkid" value="substring-after(substring-before(./@target,' '),'wrk:')"/>
+                                    <sch:let name="litid" value="substring-after(substring-before(./@target,' '),'lit:')"/>
+                                    <sch:let name="orgid" value="substring-after(./@target,' #')"/>
+                                    
+                                    <sch:assert test="(
+                                       
+$orgid ne '' and
+(
+document('../Register/register-org/register-org-a.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-b.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-c.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-d.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-e.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-f.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-g.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-h.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-i.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-j.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-k.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-l.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-m.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-n.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-o.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-p.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-qr.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-s.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-t.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-u.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-v.xml')//*[@xml:id eq $orgid] or
+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]
+)
+                                        
+) and (
+
+($wrkid ne '' and
+(
+document('../Register/register-work/register-work-a.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-b.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-c.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-d.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-e.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-f.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-g.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-h.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-i.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-j.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-k.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-l.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-m.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-n.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-o.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-p.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-qr.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-s.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-t.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-u.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-v.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-w.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-xyz.xml')//*[@xml:id eq $wrkid]
+))
+
+or (document('../Register/bibliography.xml')//*[@xml:id eq $litid]))">ID ist in den Registern nicht vorhanden.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="linkGrp">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="link"/>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="targFunc" usage="req">
+                            <valList type="closed">
+                                <valItem ident="active passive"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="listBibl">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="bibl"/>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="occurrences"/>
+                                <valItem ident="references"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="subtype" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="auto"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="listOrg">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="org"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="listPrefixDef">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="prefixDef"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="note">
+                    <content>
+                        <rng:choice>
+                            <rng:oneOrMore>
+                                <rng:ref name="p"/>
+                            </rng:oneOrMore>
+                            <rng:oneOrMore>
+                                <rng:choice>
+                                    <rng:ref name="rs"/>
+                                    <rng:ref name="hi"/>
+                                    <rng:ref name="bibl"/>
+                                    <rng:ref name="ref"/>
+                                    <rng:text/>
+                                </rng:choice>
+                            </rng:oneOrMore>
+                        </rng:choice>
+                    </content>
+                    <attList>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="annotation"/>
+                                <valItem ident="change"/>
+                                <valItem ident="status"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="subtype" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="desc"/>
+                                <valItem ident="commentary"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="org">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="orgName"/>
+                        </rng:oneOrMore>
+                        <rng:zeroOrMore>
+                            <rng:ref name="idno"/>
+                        </rng:zeroOrMore>
+                        <rng:oneOrMore>
+                            <rng:ref name="note"/>
+                        </rng:oneOrMore>
+                        <rng:oneOrMore>
+                            <rng:ref name="listBibl"/>
+                        </rng:oneOrMore>
+                        <rng:zeroOrMore>
+                            <rng:ref name="note"/>
+                        </rng:zeroOrMore>
+                        <rng:optional>
+                            <rng:ref name="linkGrp"/>
+                        </rng:optional>
+                        <rng:zeroOrMore>
+                            <rng:ref name="note"/>
+                        </rng:zeroOrMore>
+                        <rng:optional>
+                            <rng:ref name="listBibl"/>
+                        </rng:optional>
+                    </content>
+                    <attList>
+                        <attDef ident="xml:id" usage="req">
+                            <datatype>
+                                <rng:data type="ID"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="orgName">
+                    <content>
+                        <rng:ref name="term"/>
+                    </content>
+                    <attList>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="preferred"/>
+                                <valItem ident="variant"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="p">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="bibl"/>
+                                <rng:ref name="ref"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="prefixDef">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                    <attList>
+                        <attDef ident="ident" usage="req">
+                            <valList type="closed">
+                                <valItem ident="lit"/>
+                                <valItem ident="plc"/>
+                                <valItem ident="psn"/>
+                                <valItem ident="wrk"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="matchPattern" usage="req">
+                            <valList type="closed">
+                                <valItem ident="(.+)"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="replacementPattern" usage="req">
+                            <valList type="closed">                              
+                                <valItem ident="https://hainhofer.hab.de/register/personen/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/register/orte/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/register/objekte/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/informationen-zur-edition/bibliographie/$1"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="ptr">
+                    <content>
+                        <rng:empty/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="req">
+                            <datatype>
+                                <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>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="publicationStmt">
+                    <content>
+                        <rng:ref name="publisher"/>
+                        <rng:ref name="date"/>
+                        <rng:ref name="availability"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="publisher">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="ref">
+                    <content>
+                        <textNode/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="req">
+                            <datatype>
+                                <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>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="rs">
+                    <content>
+                        <rng:mixed>
+                            <rng:ref type="rs"/>
+                        </rng:mixed>
+                    </content>
+                    <attList>
+                        <attDef ident="ref" usage="opt">
+                            <!-- eigentlich immer erforderlich, nur nicht in KWIC-Snippets -->
+                            <datatype>
+                                <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="(                                    
+                                    
+$variable3 ne '' and
+(
+document('../Register/register-org/register-org-a.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-b.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-c.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-d.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-e.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-f.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-g.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-h.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-i.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-j.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-k.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-l.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-m.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-n.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-o.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-p.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-qr.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-s.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-t.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-u.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-v.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-w.xml')//*[@xml:id eq $variable3] or
+document('../Register/register-org/register-org-xyz.xml')//*[@xml:id eq $variable3]
+)
+
+and matches($variable2, '^#')                                    
+                                    
+) or (document('../Register/register-place.xml')//*[@xml:id eq $variable1] and $variable2 eq 'plc') or 
+
+(
+
+$variable1 ne '' and
+
+(
+document('../Register/register-work/register-work-a.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-b.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-c.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-d.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-e.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-f.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-g.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-h.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-i.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-j.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-k.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-l.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-m.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-n.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-o.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-p.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-qr.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-s.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-t.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-u.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-v.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-w.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-xyz.xml')//*[@xml:id eq $variable1]
+)
+
+and $variable2 eq 'wrk')
+
+or
+
+(
+
+$variable1 ne '' and
+
+(
+document('../Register/register-person/register-person-a.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-b.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-c.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-d.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-e.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-f.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-g.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-h.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-i.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-j.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-k.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-l.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-m.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-n.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-o.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-p.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-qr.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-s.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-t.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-u.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-v.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-w.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-person/register-person-xyz.xml')//*[@xml:id eq $variable1]
+)
+
+and $variable2 eq 'psn')
+
+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> </sch:pattern> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="person"/>
+                                <valItem ident="place"/>
+                                <valItem ident="org"/>
+                                <valItem ident="work"/>
+                                <valItem ident="literature"/>
+                                <valItem ident="quote"/>
+                                <!-- wird benötigt fürs Hervorheben in KWIC-Snippets -->
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="sourceDesc">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="TEI">
+                    <content>
+                        <rng:ref name="teiHeader"/>
+                        <rng:ref name="text"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="teiHeader">
+                    <content>
+                        <rng:ref name="fileDesc"/>
+                        <rng:ref name="encodingDesc"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="term">
+                    <content>
+                        <textNode/>
+                    </content>
+                    <attList>
+                        <attDef ident="sortKey" usage="opt">
+                            <datatype>
+                                <rng:data type="string"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="sortkey-regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:term/@sortKey"> <sch:assert test="matches(.,'^[0-9a-z_\-]+$')">Der Sortierschlüssel darf nur Kleinbuchstaben, Ziffern, Bindestriche und Unterstriche enthalten.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="text">
+                    <content>
+                        <rng:ref name="body"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="title">
+                    <content>
+                        <rng:text/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="titleStmt">
+                    <content>
+                        <rng:ref name="title"/>
+                    </content>
+                </elementSpec>
+
+            </schemaSpec>
+        </body>
+    </text>
+</TEI>
diff --git a/ortsregister.odd b/ortsregister.odd
new file mode 100644
index 0000000000000000000000000000000000000000..b1f00ba50d4146911f3c92b31b52f5a646a74967
--- /dev/null
+++ b/ortsregister.odd
@@ -0,0 +1,740 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml"
+    schematypens="http://purl.oclc.org/dsdl/schematron"?>
+<TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
+    <teiHeader>
+        <fileDesc>
+            <titleStmt>
+                <title>ODD für das Ortsregister in der Edition der Reise- und Sammlungsbeschreibungen Philipp Hainhofers (1578-1647)</title>
+            </titleStmt>
+            <publicationStmt>
+                <publisher>Herzog August Bibliothek Wolfenbüttel</publisher>
+                <date when="2020"/>
+                <availability>
+                    <licence target="https://creativecommons.org/licenses/by-sa/4.0/">
+                        <p>Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</p>
+                    </licence>
+                </availability>
+            </publicationStmt>
+            <sourceDesc>
+                <p>Born digital: no previous source exists.</p>
+            </sourceDesc>
+        </fileDesc>
+    </teiHeader>
+    <text>
+        <body>
+            <schemaSpec ident="ortsregister">
+                
+                <elementSpec ident="availability">
+                    <content>
+                        <rng:ref name="licence"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="bibl">
+                    <content>
+                        <alternate>
+                            <sequence>
+                                <elementRef key="ptr"/>
+                                <elementRef key="citedRange" minOccurs="0"/>
+                            </sequence>
+                            <sequence>
+                                <textNode/>
+                                <elementRef key="biblScope" minOccurs="0" maxOccurs="unbounded"/>
+                            </sequence>
+                            <sequence>
+                                <elementRef key="ref"/>
+                                <textNode/>
+                                <elementRef key="citedRange" minOccurs="0"/>
+                            </sequence>
+                        </alternate>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="biblScope">
+                    <content>
+                        <alternate maxOccurs="unbounded">
+                            <textNode/>
+                            <elementRef key="rs"/>
+                        </alternate>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="body">
+                    <content>
+                        <rng:ref name="listPlace"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="citedRange">
+                    <content>
+                        <rng:text/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="opt">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="date">
+                    <content>
+                        <empty/>
+                    </content>
+                    <attList>                        
+                        <attDef ident="when" usage="req">
+                            <datatype>                          
+                                <rng:data type="gYear"/>                                
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="desc">
+                    <content>
+                        <rng:zeroOrMore>
+                            <rng:choice>
+                                <rng:ref name="ref"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:zeroOrMore>
+                        <rng:optional>
+                            <rng:ref name="label"/>
+                        </rng:optional>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="encodingDesc">
+                    <content>
+                        <rng:ref name="listPrefixDef"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="fileDesc">
+                    <content>
+                        <rng:ref name="titleStmt"/>
+                        <rng:ref name="publicationStmt"/>
+                        <rng:ref name="sourceDesc"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="graphic">
+                    <content>
+                        <rng:ref name="desc"/>
+                    </content>
+                    <attList>
+                        <attDef ident="url" usage="req">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="graphic-regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:graphic/@url"> <sch:assert test="matches(.,'^img:')">Präfix "img:" fehlt.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                
+                <elementSpec ident="hi">
+                    <content>
+                        <rng:mixed>
+                            <rng:zeroOrMore>
+                                <rng:choice>
+                                    <rng:ref name="rs"/>
+                                    <rng:ref name="bibl"/>
+                                    <rng:ref name="ref"/>
+                                </rng:choice>
+                            </rng:zeroOrMore>
+                        </rng:mixed>
+                    </content>
+                    <attList>
+                        <attDef ident="rendition" usage="req">
+                            <valList type="closed">
+                                <valItem ident="#i"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="idno">
+                    <content>
+                        <rng:text/>
+                    </content>
+                    <constraintSpec scheme="schematron" ident="regex">
+                        <constraint> <sch:assert test="matches(.,'(^http://d-nb\.info/gnd/[0-9]{5,10}-?[0-9]$)|(^http://vocab\.getty\.edu/tgn/[0-9]+$)|(^http://sws\.geonames\.org/[0-9]+/$)|(^http://ta\.sandrart\.net/-place-[0-9]+$)')">Zeichenkette entspricht nicht den Vorgaben.</sch:assert> </constraint>
+                    </constraintSpec>
+                    <attList>
+                        <attDef ident="type">
+                            <valList type="closed">
+                                <valItem ident="URI"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="label">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="licence">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="req">
+                            <valList type="closed">
+                                <valItem ident="https://creativecommons.org/licenses/by-sa/4.0/"/>                                
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="link">
+                    <content>
+                        <rng:empty/>
+                    </content>
+                    <!--<constraintSpec scheme="schematron" ident="falls_within-contains">
+                        <constraint>
+                            <sch:pattern>                            
+                                <sch:rule context="tei:link[@ana = 'http://erlangen-crm.org/current/P89i_contains']">                                    
+                                    <sch:report test="./ancestor::tei:linkGrp[./tei:link[@ana = 'http://erlangen-crm.org/current/P89_falls_within'] and ./tei:link[@ana = 'http://erlangen-crm.org/current/P89i_contains']]">Ein Ort darf nicht zugleich einen anderen Ort beinhalten und Teil eines anderen Ortes sein.</sch:report>
+                                </sch:rule>                                
+                            </sch:pattern> 
+                        </constraint>
+                    </constraintSpec>-->
+                    <attList>
+                        <attDef ident="ana" usage="req">
+                            <valList type="closed">
+                                <valItem ident="http://erlangen-crm.org/current/P53_has_former_or_current_location"/>
+                                <valItem ident="http://erlangen-crm.org/current/P62_depicts"/>
+                                <valItem ident="http://erlangen-crm.org/current/P89_falls_within"/>
+                                <valItem ident="http://erlangen-crm.org/current/P89i_contains"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="target" usage="req">
+                            <datatype>
+                                <rng:data type="string"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:link">
+                                    <sch:let name="plcid2" value="substring-after(./@target,' #')"/>
+                                    <sch:let name="plcid1" value="substring-after(substring-before(./@target,' '),'#')"/>
+                                    <sch:let name="wrkid1" value="substring-after(./@target,' wrk:')"/>
+                                    <sch:let name="wrkid2" value="substring-after(substring-before(./@target,' '),'wrk:')"/>
+                                    <sch:let name="psnid" value="substring-after(substring-before(./@target,' '),'psn:')"/>
+                                    
+                                    <sch:assert test="((//*[@xml:id eq $plcid2]) and 
+                                       
+                                        ($wrkid2 ne '' and
+                                        (
+                                        document('../Register/register-work/register-work-a.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-b.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-c.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-d.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-e.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-f.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-g.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-h.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-i.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-j.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-k.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-l.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-m.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-n.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-o.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-p.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-qr.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-s.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-t.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-u.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-v.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-w.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-xyz.xml')//*[@xml:id eq $wrkid2]
+                                        )
+                                        )
+                                        
+                                        ) or ((//*[@xml:id eq $plcid1]) and ((//*[@xml:id eq $plcid2]) or 
+                                        
+                                        ($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
+                                        document('../Register/register-work/register-work-c.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-d.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-e.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-f.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-g.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-h.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-i.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-j.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-k.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-l.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-m.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-n.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-o.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-p.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-qr.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-s.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-t.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-u.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-v.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-w.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-xyz.xml')//*[@xml:id eq $wrkid1]
+                                        )
+                                        )
+                                        
+                                        or
+                                        
+                                        ($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
+                                        document('../Register/register-person/register-person-c.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-d.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-e.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-f.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-g.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-h.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-i.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-j.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-k.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-l.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-m.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-n.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-o.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-p.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-qr.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-s.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-t.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-u.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-v.xml')//*[@xml:id eq $psnid] or
+                                        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>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="linkGrp">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="link"/>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="targFunc" usage="req">
+                            <valList type="closed">
+                                <valItem ident="active passive"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="listBibl">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="bibl"/>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="occurrences"/>
+                                <valItem ident="references"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="subtype" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="auto"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="listPlace">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="place"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="listPrefixDef">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="prefixDef"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="note">
+                    <content>
+                        <rng:choice>
+                            <rng:oneOrMore>
+                                <rng:ref name="p"/>
+                            </rng:oneOrMore>
+                            <rng:oneOrMore>
+                                <rng:choice>
+                                    <rng:ref name="rs"/>
+                                    <rng:ref name="hi"/>
+                                    <rng:ref name="bibl"/>
+                                    <rng:ref name="ref"/>
+                                    <rng:text/>
+                                </rng:choice>
+                            </rng:oneOrMore>
+                            <rng:ref name="graphic"/>
+                        </rng:choice>
+                    </content>
+                    <attList>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="annotation"/>
+                                <valItem ident="change"/>
+                                <valItem ident="image"/>
+                                <valItem ident="status"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="subtype" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="commentary"/>
+                                <valItem ident="desc"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="p">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="bibl"/>
+                                <rng:ref name="ref"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="place">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="placeName"/>
+                        </rng:oneOrMore>
+                        <rng:oneOrMore>
+                            <rng:ref name="note"/>
+                        </rng:oneOrMore>
+                        <rng:zeroOrMore>
+                            <rng:ref name="idno"/>
+                        </rng:zeroOrMore>
+                        <rng:oneOrMore>
+                            <rng:ref name="listBibl"/>
+                        </rng:oneOrMore>
+                        <rng:zeroOrMore>
+                            <rng:choice>
+                                <rng:ref name="note"/>
+                                <rng:ref name="linkGrp"/>
+                            </rng:choice>
+                        </rng:zeroOrMore>
+                        <rng:optional>
+                            <rng:ref name="listBibl"/>
+                        </rng:optional>
+                    </content>
+                    <attList>
+                        <attDef ident="xml:id" usage="req">
+                            <datatype>
+                                <rng:data type="ID"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="placeName">
+                    <content>
+                        <rng:ref name="term"/>
+                    </content>
+                    <attList>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="preferred"/>
+                                <valItem ident="variant"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="prefixDef">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                    <attList>
+                        <attDef ident="ident" usage="req">
+                            <valList type="closed">
+                                <valItem ident="lit"/>
+                                <valItem ident="org"/>
+                                <valItem ident="psn"/>
+                                <valItem ident="wrk"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="matchPattern" usage="req">
+                            <valList type="closed">
+                                <valItem ident="(.+)"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="replacementPattern" usage="req">
+                            <valList type="closed">
+                                <valItem ident="https://hainhofer.hab.de/register/koerperschaftsregister/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/register/personen/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/register/objekte/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/informationen-zur-edition/bibliographie/$1"/>                                
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="ptr">
+                    <content>
+                        <rng:empty/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="req">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="ptr-regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:ptr[not(./@type)]"> <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>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="publicationStmt">
+                    <content>
+                        <rng:ref name="publisher"/>
+                        <rng:ref name="date"/>
+                        <rng:ref name="availability"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="publisher">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="ref">
+                    <content>
+                        <textNode/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="req">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="ref-regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:bibl/tei:ref"> <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>
+                                </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="rs">
+                    <content>
+                        <rng:mixed>
+                            <rng:ref type="rs"/>
+                        </rng:mixed>
+                    </content>
+                    <attList>
+                        <attDef ident="ref" usage="opt">
+                            <!-- eigentlich immer erforderlich, nur nicht in KWIC-Snippets -->
+                            <datatype>
+                                <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
+                                    
+                                    (
+                                    
+                                    $variable1 ne '' and
+                                    
+                                    (
+                                    document('../Register/register-person/register-person-a.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-b.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-c.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-d.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-e.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-f.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-g.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-h.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-i.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-j.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-k.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-l.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-m.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-n.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-o.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-p.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-qr.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-s.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-t.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-u.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-v.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-w.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-xyz.xml')//*[@xml:id eq $variable1]
+                                    ) 
+                                    
+                                    and $variable2 eq 'psn') 
+                                    
+                                    or (
+                                    
+$variable1 ne '' and
+(
+document('../Register/register-org/register-org-a.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-b.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-c.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-d.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-e.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-f.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-g.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-h.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-i.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-j.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-k.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-l.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-m.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-n.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-o.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-p.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-qr.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-s.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-t.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-u.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-v.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-w.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-xyz.xml')//*[@xml:id eq $variable1]
+)
+
+and $variable2 eq 'org'
+                                    
+) or 
+
+(
+$variable1 ne '' and
+(
+document('../Register/register-work/register-work-a.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-b.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-c.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-d.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-e.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-f.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-g.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-h.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-i.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-j.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-k.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-l.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-m.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-n.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-o.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-p.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-qr.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-s.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-t.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-u.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-v.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-w.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-xyz.xml')//*[@xml:id eq $variable1]
+)
+
+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> </sch:pattern> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="person"/>
+                                <valItem ident="place"/>
+                                <valItem ident="org"/>
+                                <valItem ident="work"/>
+                                <valItem ident="literature"/>
+                                <valItem ident="quote"/>
+                                <!-- wird benötigt fürs Hervorheben in KWIC-Snippets -->
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="sourceDesc">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="TEI">
+                    <content>
+                        <rng:ref name="teiHeader"/>
+                        <rng:ref name="text"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="teiHeader">
+                    <content>
+                        <rng:ref name="fileDesc"/>
+                        <rng:ref name="encodingDesc"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="term">
+                    <content>
+                        <textNode/>
+                    </content>
+                    <constraintSpec scheme="schematron" ident="regex">
+                        <constraint> <sch:assert test="matches(.,'^\S[\s\S]+\S$')">darf nicht mit Leerzeichen beginnen oder enden</sch:assert> </constraint>
+                    </constraintSpec>
+                    <attList>
+                        <attDef ident="sortKey" usage="req">
+                            <datatype>
+                                <rng:data type="string"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="sortkey-regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:term/@sortKey"> <sch:assert test="matches(.,'^[0-9a-z_\-]+$')">Der Sortierschlüssel darf nur Kleinbuchstaben, Ziffern, Bindestriche und Unterstriche enthalten.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="text">
+                    <content>
+                        <rng:ref name="body"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="title">
+                    <content>
+                        <rng:text/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="titleStmt">
+                    <content>
+                        <rng:ref name="title"/>
+                    </content>
+                </elementSpec>
+                
+            </schemaSpec>
+        </body>
+    </text>
+</TEI>
diff --git a/personenregister.odd b/personenregister.odd
new file mode 100644
index 0000000000000000000000000000000000000000..0c84eb382b11a9ec66454bf854f40b656dbe1d89
--- /dev/null
+++ b/personenregister.odd
@@ -0,0 +1,1018 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml"
+    schematypens="http://purl.oclc.org/dsdl/schematron"?>
+<TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
+    <teiHeader>
+        <fileDesc>
+            <titleStmt>
+                <title>ODD für das Personenregister in der Edition der Reise- und Sammlungsbeschreibungen Philipp Hainhofers (1578-1647)</title>
+            </titleStmt>
+            <publicationStmt>
+                <publisher>Herzog August Bibliothek Wolfenbüttel</publisher>
+                <date when="2020"/>
+                <availability>
+                    <licence target="https://creativecommons.org/licenses/by-sa/4.0/">
+                        <p>Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</p>
+                    </licence>
+                </availability>
+            </publicationStmt>
+            <sourceDesc>
+                <p>Born digital: no previous source exists.</p>
+            </sourceDesc>
+        </fileDesc>
+    </teiHeader>
+    <text>
+        <body>
+            <schemaSpec ident="personenregister">
+                
+                <elementSpec ident="availability">
+                    <content>
+                        <rng:ref name="licence"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="bibl">
+                    <content>
+                        <alternate>
+                            <sequence>
+                                <elementRef key="ptr"/>
+                                <elementRef key="citedRange" minOccurs="0"/>
+                            </sequence>
+                            <sequence>
+                                <textNode/>
+                                <elementRef key="biblScope" minOccurs="0" maxOccurs="unbounded"/>
+                            </sequence>
+                            <sequence>
+                                <elementRef key="ref"/>
+                                <textNode/>
+                                <elementRef key="citedRange" minOccurs="0"/>
+                            </sequence>
+                        </alternate>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="biblScope">
+                    <content>
+                        <alternate maxOccurs="unbounded">
+                            <textNode/>
+                            <elementRef key="rs"/>
+                        </alternate>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="birth">
+                    <content>
+                        <rng:empty/>
+                    </content>
+                    <attList>
+                        <attDef ident="when-iso" usage="opt">
+                            <datatype>
+                                <rng:data type="gYear"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="notBefore-iso" usage="opt">
+                            <datatype>
+                                <rng:data type="gYear"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="notAfter-iso" usage="opt">
+                            <datatype>
+                                <rng:data type="gYear"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="precision" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="low"/>
+                                <valItem ident="high"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <constraintSpec scheme="schematron" ident="birthdeathfloruit">
+                    <constraint> <sch:pattern> <sch:rule context="*[name()='birth' or name()='death' or name()='floruit']"> <sch:assert test="(./@when-iso and not(./@notBefore-iso)) or (./@notBefore-iso and not(./@when-iso))">Es darf nur entweder ein einzelnes Jahr oder eine Zeitspanne angegeben werden, nicht beides.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                </constraintSpec>
+
+                <elementSpec ident="body">
+                    <content>
+                        <rng:ref name="listPerson"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="citedRange">
+                    <content>
+                        <rng:text/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="opt">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="catDesc">
+                    <content>
+                        <rng:text/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="category">
+                    <content>
+                        <rng:ref name="catDesc"/>
+                        <rng:zeroOrMore>
+                            <rng:ref name="category"/>
+                        </rng:zeroOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="xml:id" usage="req">
+                            <datatype>
+                                <rng:data type="ID"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="classDecl">
+                    <content>
+                        <rng:ref name="taxonomy"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="date">
+                    <content>
+                        <empty/>                        
+                    </content>
+                    <attList>                        
+                        <attDef ident="when" usage="opt">
+                            <datatype>                          
+                                <rng:data type="gYear"/>                                
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="death">
+                    <content>
+                        <rng:empty/>
+                    </content>
+                    <attList>
+                        <attDef ident="when-iso" usage="opt">
+                            <datatype>
+                                <rng:data type="gYear"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="notBefore-iso" usage="opt">
+                            <datatype>
+                                <rng:data type="gYear"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="notAfter-iso" usage="opt">
+                            <datatype>
+                                <rng:data type="gYear"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="precision" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="high"/>
+                                <valItem ident="low"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="encodingDesc">
+                    <content>
+                        <rng:ref name="listPrefixDef"/>
+                        <rng:ref name="classDecl"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="faith">
+                    <content>
+                        <elementRef key="linkGrp" minOccurs="0"/>
+                        <elementRef key="gloss" minOccurs="1"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="fileDesc">
+                    <content>
+                        <rng:ref name="titleStmt"/>
+                        <rng:ref name="publicationStmt"/>
+                        <rng:ref name="sourceDesc"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="floruit">
+                    <content>
+                        <textNode/>
+                    </content>
+                    <constraintSpec scheme="schematron" ident="regex">
+                        <constraint> <sch:assert test=". ne ''">Wirkungsdaten müssen verbal angegeben werden.</sch:assert> </constraint>
+                    </constraintSpec>
+                    <attList>
+                        <attDef ident="when-iso" usage="opt">
+                            <datatype>
+                                <rng:data type="gYear"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="notBefore-iso" usage="opt">
+                            <datatype>
+                                <rng:data type="gYear"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="notAfter-iso" usage="opt">
+                            <datatype>
+                                <rng:data type="gYear"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="precision" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="low"/>
+                                <valItem ident="high"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="forename">
+                    <content>
+                        <rng:text/>
+                    </content>
+                    <constraintSpec scheme="schematron" ident="regex">
+                        <constraint> <sch:assert test="matches(.,'^\S.+\S$') or normalize-space(.) eq ''">darf nicht mit Leerzeichen beginnen oder enden</sch:assert> </constraint>
+                    </constraintSpec>
+                </elementSpec>
+
+                <elementSpec ident="gloss">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="hi">
+                    <content>
+                        <rng:mixed>
+                            <rng:zeroOrMore>
+                                <rng:choice>
+                                    <rng:ref name="rs"/>
+                                    <rng:ref name="bibl"/>
+                                    <rng:ref name="ref"/>
+                                </rng:choice>
+                            </rng:zeroOrMore>
+                        </rng:mixed>
+                    </content>
+                    <attList>
+                        <attDef ident="rendition" usage="req">
+                            <valList type="closed">
+                                <valItem ident="#i"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="idno">
+                    <content>
+                        <rng:text/>
+                    </content>
+                    <constraintSpec scheme="schematron" ident="regex">
+                        <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/public/index\.php/frontend/lexicon)|(^https?://www\.deutsche-biographie\.de/.+\S$)|(^http://ta\.sandrart\.net/-person-[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>
+                    </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>
+                    </constraintSpec>
+                    <attList>
+                        <attDef ident="type">
+                            <valList type="closed">
+                                <valItem ident="URI"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="licence">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="req">
+                            <valList type="closed">
+                                <valItem ident="https://creativecommons.org/licenses/by-sa/4.0/"/>                                
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="link">
+                    <content>
+                        <rng:empty/>
+                    </content>
+                    <attList>
+                        <attDef ident="ana" usage="req">
+                            <valList type="closed">
+                                <valItem ident="http://purl.org/dc/elements/1.1/creator"/>
+                                <valItem ident="http://erlangen-crm.org/current/P107_has_current_or_former_member"/>
+                                <valItem ident="http://erlangen-crm.org/current/P62_depicts"/>
+                                <valItem ident="http://www.wikidata.org/prop/P140"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="target" usage="req">
+                            <datatype>
+                                <rng:data type="string"/>
+                            </datatype>
+
+                            <constraintSpec scheme="schematron" ident="faith-regex1">
+                                <constraint> <sch:pattern> <sch:rule context="tei:link[@ana eq 'http://www.wikidata.org/prop/P140']">
+                                    <sch:let name="psnid" value="substring-after(substring-before(./@target,' '),'#')"/>
+                                    <sch:assert test="(ancestor::tei:person|ancestor::tei:personGrp)/@xml:id eq $psnid">ID stimmt nicht überein; bitte neu generieren.</sch:assert>
+                                </sch:rule>
+                                </sch:pattern>
+                                </constraint>
+                            </constraintSpec>
+                            <constraintSpec scheme="schematron" ident="faith-regex2">
+                                <constraint> <sch:pattern> <sch:rule context="tei:link[@ana eq 'http://www.wikidata.org/prop/P140']">                                    
+                                    <sch:let name="religion" value="substring-after(./@target,'http://www.wikidata.org/entity/')"/>
+                                    <sch:assert test="matches($religion,'^Q1841$|^Q23540$|^Q106039$')">Wikidata-URI nicht korrekt.</sch:assert>
+                                </sch:rule>
+                                </sch:pattern>
+                                </constraint>
+                            </constraintSpec>
+                            
+                            <constraintSpec scheme="schematron" ident="regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:link[@ana ne 'http://www.wikidata.org/prop/P140']">
+                                    <sch:let name="psnid2" value="substring-after(./@target,' #')"/>
+                                    <sch:let name="psnid1" value="substring-after(substring-before(./@target,' '),'#')"/>
+                                    <sch:let name="wrkid" value="substring-after(substring-before(./@target,' '),'wrk:')"/>
+                                    <sch:let name="plcid" value="substring-after(substring-before(./@target,' '),'plc:')"/>
+                                    <sch:let name="orgid" value="substring-after(substring-before(./@target,' '),'org:')"/>
+                                    <sch:let name="litid" value="substring-after(substring-before(./@target,' '),'lit:')"/>
+                                   
+                                    <sch:assert test="( $psnid2 ne '' and 
+                                        
+                                        (
+                                        document('../Register/register-person/register-person-a.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-b.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-c.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-d.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-e.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-f.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-g.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-h.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-i.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-j.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-k.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-l.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-m.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-n.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-o.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-p.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-qr.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-s.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-t.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-u.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-v.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-w.xml')//*[@xml:id eq $psnid2] or
+                                        document('../Register/register-person/register-person-xyz.xml')//*[@xml:id eq $psnid2]
+                                        ))
+                                        
+                                        and (
+                                        
+                                        (($psnid1 ne '')
+                                        and
+                                        (
+                                        document('../Register/register-person/register-person-a.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-b.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-c.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-d.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-e.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-f.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-g.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-h.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-i.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-j.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-k.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-l.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-m.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-n.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-o.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-p.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-qr.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-s.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-t.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-u.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-v.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-w.xml')//*[@xml:id eq $psnid1] or
+                                        document('../Register/register-person/register-person-xyz.xml')//*[@xml:id eq $psnid1]
+                                        )
+                                        )                                        
+                                        
+                                        or 
+                                        
+($wrkid ne '' and
+(
+document('../Register/register-work/register-work-a.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-b.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-c.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-d.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-e.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-f.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-g.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-h.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-i.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-j.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-k.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-l.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-m.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-n.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-o.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-p.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-qr.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-s.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-t.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-u.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-v.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-w.xml')//*[@xml:id eq $wrkid] or
+document('../Register/register-work/register-work-xyz.xml')//*[@xml:id eq $wrkid]
+))
+                                        
+                                        or (document('../Register/register-place.xml')//*[@xml:id eq $plcid]) or (
+                                        
+$orgid ne '' and
+(
+document('../Register/register-org/register-org-a.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-b.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-c.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-d.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-e.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-f.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-g.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-h.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-i.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-j.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-k.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-l.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-m.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-n.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-o.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-p.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-qr.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-s.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-t.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-u.xml')//*[@xml:id eq $orgid] or
+document('../Register/register-org/register-org-v.xml')//*[@xml:id eq $orgid] or
+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>
+                                
+                            </constraintSpec>
+                            
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="linkGrp">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="link"/>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="targFunc" usage="req">
+                            <valList type="closed">
+                                <valItem ident="active passive"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="listBibl">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="bibl"/>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="occurrences"/>
+                                <valItem ident="references"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="subtype" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="auto"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="listPerson">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:oneOrMore>
+                                    <rng:ref name="person"/>
+                                </rng:oneOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="personGrp"/>
+                                </rng:zeroOrMore>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="listPrefixDef">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="prefixDef"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="name">
+                    <content>
+                        <rng:text/>
+                    </content>
+                    <constraintSpec scheme="schematron" ident="regex">
+                        <constraint> <sch:assert test="matches(.,'^\S[\s\S]+\S$')">darf nicht mit Leerzeichen beginnen oder enden</sch:assert> </constraint>
+                    </constraintSpec>
+                </elementSpec>
+
+                <elementSpec ident="note">
+                    <content>
+                        <rng:choice>
+                            <rng:oneOrMore>
+                                <rng:ref name="p"/>
+                            </rng:oneOrMore>
+                            <rng:oneOrMore>
+                                <rng:choice>
+                                    <rng:ref name="rs"/>
+                                    <rng:ref name="hi"/>
+                                    <rng:ref name="bibl"/>
+                                    <rng:ref name="ref"/>
+                                    <rng:text/>
+                                </rng:choice>
+                            </rng:oneOrMore>
+                            <rng:empty/>
+                        </rng:choice>
+                    </content>
+                    <attList>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="annotation"/>
+                                <valItem ident="change"/>
+                                <valItem ident="status"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="subtype" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="bio"/>
+                                <valItem ident="commentary"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="occupation">
+                    <content>
+                        <rng:empty/>
+                    </content>
+                    <attList>
+                        <attDef ident="scheme" usage="req">
+                            <valList type="closed">
+                                <valItem ident="#kategorien"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="code" usage="req">
+                            <valList type="closed">
+                                <valItem ident="#angewandt"/>
+                                <valItem ident="#malerei"/>
+                                <valItem ident="#skulptur"/>
+                                <valItem ident="#graphik"/>
+                                <valItem ident="#architektur"/>
+                                <valItem ident="#mythologie"/>
+                                <valItem ident="#bibel"/>
+                                <valItem ident="#fuersten"/>
+                                <valItem ident="#personifikationen"/>
+                                <valItem ident="#gelehrte"/>
+                                <valItem ident="#kirche"/>
+                                <valItem ident="#sammler"/>
+                                <valItem ident="#kaufleute"/>
+                                <valItem ident="#hofleute"/>
+                                <valItem ident="#militaer"/>
+                                <valItem ident="#bedienstete"/>
+                                <valItem ident="#randgruppen"/>
+                                <valItem ident="#sonstige"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="p">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="bibl"/>
+                                <rng:ref name="ref"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="persName">
+                    <content>
+                        <rng:ref name="term"/>
+                    </content>
+                    <attList>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="preferred"/>
+                                <valItem ident="variant"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="person">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="note"/>
+                        </rng:oneOrMore>
+                        <rng:zeroOrMore>
+                            <rng:ref name="idno"/>
+                        </rng:zeroOrMore>
+                        <rng:oneOrMore>
+                            <rng:ref name="persName"/>
+                        </rng:oneOrMore>
+                        <rng:oneOrMore>
+                            <rng:ref name="listBibl"/>
+                        </rng:oneOrMore>
+                        <rng:zeroOrMore>
+                            <rng:choice>
+                                <rng:group>
+                                    <rng:optional>
+                                        <rng:ref name="birth"/>
+                                    </rng:optional>
+                                    <rng:optional>
+                                        <rng:ref name="death"/>
+                                    </rng:optional>
+                                </rng:group>
+                                <rng:ref name="floruit"/>
+                                <rng:ref name="linkGrp"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="occupation"/>
+                                <rng:ref name="faith"/>
+                            </rng:choice>
+                        </rng:zeroOrMore>
+
+                        <rng:optional>
+                            <rng:ref name="listBibl"/>
+                        </rng:optional>
+                    </content>
+                    <attList>
+                        <attDef ident="xml:id" usage="req">
+                            <datatype>
+                                <rng:data type="ID"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="xmlid-regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:person/@xml:id"> <sch:assert test="matches(.,'^[0-9a-zA-Z_\-]+$')">Der Identifier darf nur Buchstaben, Ziffern, Bindestriche und Unterstriche enthalten.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="personGrp">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="note"/>
+                        </rng:oneOrMore>
+                        <rng:zeroOrMore>
+                            <rng:ref name="idno"/>
+                        </rng:zeroOrMore>
+                        <rng:oneOrMore>
+                            <rng:ref name="persName"/>
+                        </rng:oneOrMore>
+                        <rng:zeroOrMore>
+                            <rng:choice>
+                                <rng:ref name="occupation"/>
+                                <rng:ref name="faith"/>
+                            </rng:choice>
+                        </rng:zeroOrMore>
+                        <rng:oneOrMore>
+                            <rng:ref name="listBibl"/>
+                        </rng:oneOrMore>
+                        <rng:zeroOrMore>
+                            <rng:choice>
+                                <rng:ref name="linkGrp"/>
+                                <rng:ref name="note"/>
+                            </rng:choice>
+                        </rng:zeroOrMore>
+                        <rng:optional>
+                            <rng:ref name="listBibl"/>
+                        </rng:optional>
+                    </content>
+                    <attList>
+                        <attDef ident="xml:id" usage="req">
+                            <datatype>
+                                <rng:data type="ID"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="prefixDef">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                    <attList>
+                        <attDef ident="ident" usage="req">
+                            <valList type="closed">
+                                <valItem ident="lit"/>
+                                <valItem ident="plc"/>
+                                <valItem ident="wrk"/>
+                                <valItem ident="org"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="matchPattern" usage="req">
+                            <valList type="closed">
+                                <valItem ident="(.+)"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="replacementPattern" usage="req">
+                            <valList type="closed">
+                                <valItem ident="https://hainhofer.hab.de/register/koerperschaftsregister/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/register/orte/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/register/objekte/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/informationen-zur-edition/bibliographie/$1"/>                               
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="ptr">
+                    <content>
+                        <rng:empty/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="req">
+                            <datatype>
+                                <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>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="publicationStmt">
+                    <content>
+                        <rng:ref name="publisher"/>
+                        <rng:ref name="date"/>
+                        <rng:ref name="availability"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="publisher">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="ref">
+                    <content>
+                        <textNode/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="req">
+                            <datatype>
+                                <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>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="rs">
+                    <content>
+                        <rng:mixed>
+                            <rng:ref type="rs"/>
+                        </rng:mixed>
+                    </content>
+                    <attList>
+                        <attDef ident="ref" usage="opt">
+                            <!-- eigentlich immer erforderlich, nur nicht in KWIC-Snippets -->
+                            <datatype>
+                                <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="(    
+                                    (($variable3 ne '')
+                                    and
+                                    (
+                                    document('../Register/register-person/register-person-a.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-b.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-c.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-d.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-e.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-f.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-g.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-h.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-i.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-j.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-k.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-l.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-m.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-n.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-o.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-p.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-qr.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-s.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-t.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-u.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-v.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-w.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-person/register-person-xyz.xml')//*[@xml:id eq $variable3]
+                                    )) 
+                                    
+                                    
+                                    and matches($variable2, '^#')) or (document('../Register/register-place.xml')//*[@xml:id eq $variable1] and $variable2 eq 'plc') or (
+                                    
+$variable1 ne '' and
+(
+document('../Register/register-org/register-org-a.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-b.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-c.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-d.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-e.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-f.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-g.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-h.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-i.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-j.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-k.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-l.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-m.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-n.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-o.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-p.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-qr.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-s.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-t.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-u.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-v.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-w.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-org/register-org-xyz.xml')//*[@xml:id eq $variable1]
+)
+
+and $variable2 eq 'org'
+                                    
+) or 
+
+($variable1 ne '' and
+(
+document('../Register/register-work/register-work-a.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-b.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-c.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-d.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-e.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-f.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-g.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-h.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-i.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-j.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-k.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-l.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-m.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-n.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-o.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-p.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-qr.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-s.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-t.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-u.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-v.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-w.xml')//*[@xml:id eq $variable1] or
+document('../Register/register-work/register-work-xyz.xml')//*[@xml:id eq $variable1]
+)
+
+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>
+                         </sch:pattern> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="person"/>
+                                <valItem ident="place"/>
+                                <valItem ident="org"/>
+                                <valItem ident="work"/>
+                                <valItem ident="literature"/>
+                                <valItem ident="quote"/>
+                                <!-- wird benötigt fürs Hervorheben in KWIC-Snippets -->
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="sourceDesc">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="surname">
+                    <content>
+                        <rng:text/>
+                    </content>
+                    <constraintSpec scheme="schematron" ident="regex">
+                        <constraint> <sch:assert test="matches(.,'^\S.+\S$')">darf nicht mit Leerzeichen beginnen oder enden</sch:assert> </constraint>
+                    </constraintSpec>
+                </elementSpec>
+
+                <elementSpec ident="taxonomy">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="category"/>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="xml:id" usage="req">
+                            <datatype>
+                                <rng:data type="ID"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="TEI">
+                    <content>
+                        <rng:ref name="teiHeader"/>
+                        <rng:ref name="text"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="teiHeader">
+                    <content>
+                        <rng:ref name="fileDesc"/>
+                        <rng:ref name="encodingDesc"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="term">
+                    <content>
+                        <rng:choice>
+                            <rng:group>
+                                <rng:ref name="forename"/>
+                                <rng:ref name="surname"/>
+                            </rng:group>
+                            <rng:ref name="name"/>
+                        </rng:choice>
+                    </content>
+                    <attList>
+                        <attDef ident="sortKey" usage="req">
+                            <datatype>
+                                <rng:data type="string"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="sortkey-regex">
+                                <constraint> <sch:assert test="matches(.,'^[0-9a-z_\-]+$')">Der Sortierschlüssel darf nur Kleinbuchstaben, Ziffern, Bindestriche und Unterstriche enthalten.</sch:assert> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+
+                <elementSpec ident="text">
+                    <content>
+                        <rng:ref name="body"/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="title">
+                    <content>
+                        <rng:text/>
+                    </content>
+                </elementSpec>
+
+                <elementSpec ident="titleStmt">
+                    <content>
+                        <rng:ref name="title"/>
+                    </content>
+                </elementSpec>
+
+            </schemaSpec>
+        </body>
+    </text>
+</TEI>
diff --git a/transkription.odd b/transkription.odd
new file mode 100644
index 0000000000000000000000000000000000000000..697abe0e928869158926bcdc8b902be18e920bd7
--- /dev/null
+++ b/transkription.odd
@@ -0,0 +1,1526 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml"
+    schematypens="http://purl.oclc.org/dsdl/schematron"?>
+<TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">
+    <teiHeader>
+        <fileDesc>
+            <titleStmt>
+                <title>ODD für die Transkription in der Edition der Reise- und Sammlungsbeschreibungen Philipp Hainhofers (1578-1647)</title>
+            </titleStmt>
+            <publicationStmt>
+                <publisher>Herzog August Bibliothek Wolfenbüttel</publisher>
+                <date when="2020"/>
+                <availability>
+                    <licence target="https://creativecommons.org/licenses/by-sa/4.0/">
+                        <p>Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</p>
+                    </licence>
+                </availability>
+            </publicationStmt>
+            <sourceDesc>
+                <p>Born digital: no previous source exists.</p>
+            </sourceDesc>
+        </fileDesc>
+    </teiHeader>
+    <text>
+        <body>
+            <schemaSpec ident="transkription">
+                
+                <elementSpec ident="abbr">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="add"/>
+                                <rng:ref name="app"/>
+                                <rng:ref name="choice"/>
+                                <rng:ref name="date"/>
+                                <rng:ref name="ex"/>
+                                <rng:ref name="gap"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="lb"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="foreign"/>
+                                <rng:ref name="ref"/>
+                                <rng:ref name="sic"/>
+                                <rng:ref name="unclear"/>
+                                <rng:ref name="g"/>
+                                <rng:ref name="fw"/>
+                                <rng:ref name="cb"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="add">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="add"/>
+                                <rng:ref name="app"/>
+                                <rng:ref name="choice"/>
+                                <rng:ref name="date"/>
+                                <rng:ref name="ex"/>
+                                <rng:ref name="gap"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="lb"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="foreign"/>
+                                <rng:ref name="ref"/>
+                                <rng:ref name="sic"/>
+                                <rng:ref name="unclear"/>
+                                <rng:ref name="g"/>
+                                <rng:ref name="fw"/>
+                                <rng:ref name="cb"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="place" usage="req">
+                            <valList type="closed">
+                                <valItem ident="above"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="app">
+                    <classes>
+                        <memberOf key="model.global"/>
+                    </classes>
+                    <content>
+                        <rng:ref name="lem"/>
+                        <rng:oneOrMore>
+                            <rng:ref name="rdg"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="author">
+                    <content>
+                        <textNode/>
+                    </content>
+                    <attList>
+                        <attDef ident="xml:id" usage="req">
+                            <valList type="closed">
+                                <valItem ident="PH"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="availability">
+                    <content>
+                        <rng:ref name="licence"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="bibl">
+                    <content>
+                        <rng:choice>
+                            <rng:group>
+                                <rng:ref name="ptr"/>
+                                <rng:optional>
+                                    <rng:ref name="citedRange"/>
+                                </rng:optional>
+                            </rng:group>
+                            <rng:group>
+                                <rng:optional>
+                                    <rng:ref name="ptr"/>
+                                </rng:optional>
+                                <rng:ref name="citedRange"/>
+                            </rng:group>
+                            <rng:mixed>
+                                <rng:ref name="ref"/>
+                                <rng:optional>
+                                    <rng:ref name="citedRange"/>
+                                </rng:optional>
+                            </rng:mixed>
+                            <rng:text/>
+                        </rng:choice>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="body">
+                    <content>
+                        <rng:interleave>
+                            <rng:zeroOrMore>
+                                <rng:ref name="pb"/>
+                            </rng:zeroOrMore>
+                            <rng:zeroOrMore>
+                                <rng:ref name="p"/>
+                            </rng:zeroOrMore>
+                            <rng:zeroOrMore>
+                                <rng:ref name="div"/>
+                            </rng:zeroOrMore>
+                        </rng:interleave>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="calendar">
+                    <content>
+                        <elementRef key="p"/>
+                    </content>
+                    <attList>
+                        <attDef ident="xml:id" usage="req">
+                            <valList type="closed">
+                                <valItem ident="gregorian"/>
+                                <valItem ident="julian"/>
+                                <valItem ident="unknown"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="calendarDesc">
+                    <content>
+                        <elementRef key="calendar" minOccurs="2" maxOccurs="2"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="cb">
+                    <content>
+                        <empty/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="cell">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="add"/>
+                                <rng:ref name="app"/>
+                                <rng:ref name="choice"/>
+                                <rng:ref name="date"/>
+                                <rng:ref name="ex"/>
+                                <rng:ref name="gap"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="lb"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="foreign"/>
+                                <rng:ref name="ref"/>
+                                <rng:ref name="sic"/>
+                                <rng:ref name="unclear"/>
+                                <rng:ref name="g"/>
+                                <rng:ref name="fw"/>
+                                <rng:ref name="cb"/>
+                                <rng:ref name="table"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="rows" usage="opt">
+                            <datatype>
+                                <dataRef name="nonNegativeInteger"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="cols" usage="opt">
+                            <datatype>
+                                <dataRef name="nonNegativeInteger"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="char">
+                    <content>
+                        <rng:optional>
+                            <rng:ref name="charName"/>
+                        </rng:optional>
+                        <rng:optional>
+                            <rng:ref name="charProp"/>
+                        </rng:optional>
+                        <rng:zeroOrMore>
+                            <rng:ref name="mapping"/>
+                        </rng:zeroOrMore>
+                        <rng:optional>
+                            <rng:ref name="figure"/>
+                        </rng:optional>
+                        <rng:optional>
+                            <rng:ref name="note"/>
+                        </rng:optional>
+                    </content>
+                    <attList>
+                        <attDef ident="xml:id" usage="req">
+                            <datatype>
+                                <rng:data type="ID"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="charDecl">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="char"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="charName">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="charProp">
+                    <content>
+                        <rng:ref name="localName"/>
+                        <rng:ref name="value"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="choice">
+                    <classes>
+                        <memberOf key="model.phrase"/>
+                    </classes>
+                    <content>
+                        <alternate>
+                            <sequence>
+                                <elementRef key="abbr"/>
+                                <elementRef key="expan"/>
+                            </sequence>
+                            <sequence>
+                                <elementRef key="sic"/>
+                                <elementRef key="corr"/>
+                            </sequence>
+                        </alternate>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="citedRange">
+                    <content>
+                        <rng:text/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="opt">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="corr">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="add"/>
+                                <rng:ref name="app"/>
+                                <rng:ref name="choice"/>
+                                <rng:ref name="date"/>
+                                <rng:ref name="ex"/>
+                                <rng:ref name="gap"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="lb"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="foreign"/>
+                                <rng:ref name="ref"/>
+                                <rng:ref name="sic"/>
+                                <rng:ref name="unclear"/>
+                                <rng:ref name="g"/>
+                                <rng:ref name="fw"/>
+                                <rng:ref name="cb"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="date">
+                    <content>
+                        <rng:zeroOrMore>
+                            <rng:choice>
+                                <rng:ref name="add"/>
+                                <rng:ref name="app"/>
+                                <rng:ref name="choice"/>
+                                <rng:ref name="date"/>
+                                <rng:ref name="ex"/>
+                                <rng:ref name="gap"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="lb"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="foreign"/>
+                                <rng:ref name="sic"/>
+                                <rng:ref name="unclear"/>
+                                <rng:ref name="g"/>
+                                <rng:ref name="fw"/>
+                                <rng:ref name="cb"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:zeroOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="calendar" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="#gregorian"/>
+                                <valItem ident="#julian"/>
+                                <valItem ident="#unknown"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="when" usage="opt">
+                            <datatype>                          
+                                <rng:data type="gYear"/>                                
+                            </datatype>
+                        </attDef>
+                        <attDef ident="datingMethod" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="#gregorian"/>
+                                <valItem ident="#julian"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="when-custom" usage="opt">
+                            <datatype>
+                                <rng:choice>
+                                    <rng:data type="gYear"/>
+                                    <rng:data type="gYearMonth"/>
+                                    <rng:data type="date"/>
+                                </rng:choice>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="from-custom" usage="opt">
+                            <datatype>
+                                <rng:choice>
+                                    <rng:data type="gYear"/>
+                                    <rng:data type="gYearMonth"/>
+                                    <rng:data type="date"/>
+                                </rng:choice>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="to-custom" usage="opt">
+                            <datatype>
+                                <rng:choice>
+                                    <rng:data type="gYear"/>
+                                    <rng:data type="gYearMonth"/>
+                                    <rng:data type="date"/>
+                                </rng:choice>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="notBefore-custom" usage="opt">
+                            <datatype>
+                                <rng:choice>
+                                    <rng:data type="gYear"/>
+                                    <rng:data type="gYearMonth"/>
+                                    <rng:data type="date"/>
+                                </rng:choice>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="notAfter-custom" usage="opt">
+                            <datatype>
+                                <rng:choice>
+                                    <rng:data type="gYear"/>
+                                    <rng:data type="gYearMonth"/>
+                                    <rng:data type="date"/>
+                                </rng:choice>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="desc">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="div">
+                    <content>
+                        <rng:interleave>
+                            <rng:oneOrMore>
+                                <rng:ref name="pb"/>
+                            </rng:oneOrMore>
+                            <rng:zeroOrMore>
+                                <rng:ref name="p"/>
+                            </rng:zeroOrMore>
+                        </rng:interleave>
+                    </content>
+                    <attList>
+                        <attDef ident="hand" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="#druckschrift"/>
+                                <valItem ident="#druckgraphik"/>
+                                <valItem ident="#handzeichnung"/>
+                                <valItem ident="#fremde_hand"/>
+                                <valItem ident="#PH"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="rend" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="accMat"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="corresp" usage="opt">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="rs-regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:div[@corresp]"> <sch:let name="variable" value="substring(./@corresp,5)"/> <sch:assert test="
+                                    $variable ne '' and
+                                    (
+                                    document('../Register/register-work/register-work-a.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-b.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-c.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-d.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-e.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-f.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-g.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-h.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-i.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-j.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-k.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-l.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-m.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-n.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-o.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-p.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-qr.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-s.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-t.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-u.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-v.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-w.xml')//*[@xml:id eq $variable] or
+                                    document('../Register/register-work/register-work-xyz.xml')//*[@xml:id eq $variable]
+                                    )
+                                    
+                                    
+                                    ">ID "<sch:value-of select="$variable"/>" ist in der angegebenen Registerdatei nicht vorhanden.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="encodingDesc">
+                    <content>
+                        <rng:ref name="tagsDecl"/>
+                        <rng:ref name="listPrefixDef"/>
+                        <rng:optional>
+                            <rng:ref name="charDecl"/>
+                        </rng:optional>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="ex">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="g"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="expan">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="add"/>
+                                <rng:ref name="app"/>
+                                <rng:ref name="choice"/>
+                                <rng:ref name="date"/>
+                                <rng:ref name="gap"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="lb"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="foreign"/>
+                                <rng:ref name="ref"/>
+                                <rng:ref name="sic"/>
+                                <rng:ref name="unclear"/>
+                                <rng:ref name="g"/>
+                                <rng:ref name="fw"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="figure">
+                    <content>                        
+                        <rng:ref name="graphic"/>                       
+                    </content>               
+                </elementSpec>
+                
+                <elementSpec ident="fileDesc">
+                    <content>
+                        <rng:ref name="titleStmt"/>
+                        <rng:ref name="publicationStmt"/>
+                        <rng:ref name="sourceDesc"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="foreign">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="add"/>
+                                <rng:ref name="app"/>
+                                <rng:ref name="choice"/>
+                                <rng:ref name="date"/>
+                                <rng:ref name="ex"/>
+                                <rng:ref name="gap"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="lb"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="ref"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="sic"/>
+                                <rng:ref name="unclear"/>
+                                <rng:ref name="g"/>
+                                <rng:ref name="fw"/>
+                                <rng:ref name="cb"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="xml:lang" usage="req">
+                            <valList type="closed">
+                                <valItem ident="la"/>
+                                <valItem ident="it"/>
+                                <valItem ident="fr"/>
+                                <valItem ident="grc"/>
+                                <valItem ident="he"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="fw">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="add"/>
+                                <rng:ref name="app"/>
+                                <rng:ref name="choice"/>
+                                <rng:ref name="date"/>
+                                <rng:ref name="ex"/>
+                                <rng:ref name="foreign"/>
+                                <rng:ref name="gap"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="lb"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="ref"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="sic"/>
+                                <rng:ref name="unclear"/>
+                                <rng:ref name="g"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="catch"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="place" usage="req">
+                            <valList type="closed">
+                                <valItem ident="bottom"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="g">
+                    <content>
+                        <textNode/>
+                    </content>
+                    <attList>
+                        <attDef ident="ref" usage="req">
+                            <valList type="closed">
+                                <valItem ident="#etc"/>
+                                <valItem ident="#etc2"/>
+                                <valItem ident="#mk"/>
+                                <valItem ident="#scudo"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="gap">
+                    <content>
+                        <empty/>
+                    </content>
+                    <attList>
+                        <attDef ident="reason">
+                            <valList type="closed">
+                                <valItem ident="illegible"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="graphic">
+                    <content>
+                        <empty/>
+                    </content>
+                    <attList>
+                        <attDef ident="url" usage="req">
+                            <datatype>
+                                <rng:data type="string"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="mimeType" usage="req">
+                            <valList type="closed">
+                                <valItem ident="svg+xml"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="handNote">
+                    <content>
+                        <rng:text/>
+                    </content>
+                    <attList>
+                        <attDef ident="xml:id" usage="req">
+                            <datatype>
+                                <rng:data type="ID"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="handNotes">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="handNote"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="hi">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="add"/>
+                                <rng:ref name="app"/>
+                                <rng:ref name="choice"/>
+                                <rng:ref name="date"/>
+                                <rng:ref name="ex"/>
+                                <rng:ref name="gap"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="lb"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="foreign"/>
+                                <rng:ref name="ref"/>
+                                <rng:ref name="sic"/>
+                                <rng:ref name="unclear"/>
+                                <rng:ref name="g"/>
+                                <rng:ref name="fw"/>
+                                <rng:ref name="cb"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="rendition" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="#aq"/>
+                                <valItem ident="#i"/>
+                                <valItem ident="#s"/>
+                                <valItem ident="#sup"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="idno">
+                    <content>
+                        <textNode/>
+                    </content>
+                    <attList>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="shelfmark"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="lb">
+                    <content>
+                        <empty/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="lem">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="add"/>
+                                <rng:ref name="app"/>
+                                <rng:ref name="choice"/>
+                                <rng:ref name="date"/>
+                                <rng:ref name="ex"/>
+                                <rng:ref name="gap"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="lb"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="ref"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="foreign"/>
+                                <rng:ref name="sic"/>
+                                <rng:ref name="unclear"/>
+                                <rng:ref name="g"/>
+                                <rng:ref name="fw"/>
+                                <rng:ref name="table"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="licence">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="req">
+                            <valList type="closed">
+                                <valItem ident="https://creativecommons.org/licenses/by-sa/4.0/"/>                                
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="listPerson">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="person"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="listPrefixDef">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="prefixDef"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="listWit">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="witness"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="localName">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="mapping">
+                    <content>
+                        <textNode/>
+                    </content>
+                    <attList>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="MUFI"/>
+                                <valItem ident="standard"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="msDesc">
+                    <content>
+                        <rng:ref name="msIdentifier"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="msIdentifier">
+                    <content>
+                        <rng:ref name="repository"/>
+                        <rng:ref name="idno"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="name">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="note">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="add"/>
+                                <rng:ref name="app"/>
+                                <rng:ref name="choice"/>
+                                <rng:ref name="date"/>
+                                <rng:ref name="ex"/>
+                                <rng:ref name="gap"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="lb"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="foreign"/>
+                                <rng:ref name="ref"/>
+                                <rng:ref name="sic"/>
+                                <rng:ref name="unclear"/>
+                                <rng:ref name="g"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="bibl"/>
+                                <rng:ref name="fw"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="resp" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="#editor"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="type" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="annotation">
+                                    <gloss xml:lang="de">editorische Anmerkung</gloss>
+                                    <desc xml:lang="de">wird durch @subtype näher bestimmt</desc>
+                                </valItem>
+                                <valItem ident="contemporary">
+                                    <gloss xml:lang="de">zeitgenössische Marginalie</gloss>
+                                </valItem>
+                            </valList>
+                        </attDef>
+                        <attDef ident="subtype" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="addition">
+                                    <gloss xml:lang="de">Bearbeiterzusatz</gloss>
+                                </valItem>
+                                <valItem ident="commentary">
+                                    <gloss xml:lang="de">Stellenkommentar</gloss>
+                                </valItem>
+                                <valItem ident="gloss">
+                                    <gloss xml:lang="de">Sacherläuterung</gloss>
+                                </valItem>
+                                <valItem ident="translation">
+                                    <gloss xml:lang="de">Übersetzung</gloss>
+                                </valItem>
+                            </valList>
+                        </attDef>
+                        <attDef ident="place" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="margin left"/>
+                                <valItem ident="margin right"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="p">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:oneOrMore>
+                                    <rng:ref name="lb"/>
+                                </rng:oneOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="pb"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="note"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="add"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="app"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="choice"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="date"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="ex"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="gap"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="hi"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="ref"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="rs"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="foreign"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="sic"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="unclear"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="g"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="fw"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="cb"/>
+                                </rng:zeroOrMore>
+                                <rng:zeroOrMore>
+                                    <rng:ref name="table"/>
+                                </rng:zeroOrMore>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="hand" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="#fremde_hand"/>
+                                <valItem ident="#PH"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="pb">
+                    <content>
+                        <empty/>
+                    </content>
+                    <attList>
+                        <attDef ident="n" usage="req">
+                            <datatype>
+                                <rng:data type="string"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="pb-regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:pb"> <sch:assert test="matches(./@n,'^fol.\s([1-9][0-9]{0,3}[a-z]?(r|v)?([0-9][0-9](r|v))?-?){1,2}$')">Die Foliierung entspricht nicht dem vorgegebenen Schema (Zahl + optional "r" oder "v" + optional weitere zweistellige Zahl mit "r" oder "v").</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                        <attDef ident="facs" usage="opt">
+                            <datatype>
+                                <rng:data type="string"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="prefixDef">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                    <attList>
+                        <attDef ident="ident" usage="req">
+                            <valList type="closed">
+                                <valItem ident="lit"/>
+                                <valItem ident="plc"/>
+                                <valItem ident="wrk"/>
+                                <valItem ident="psn"/>
+                                <valItem ident="org"/>
+                                <valItem ident="img"/>
+                                <valItem ident="img2"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="matchPattern" usage="req">
+                            <valList type="closed">
+                                <valItem ident="(.+)"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="replacementPattern" usage="req">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                            <valList type="open">
+                                <valItem ident="https://hainhofer.hab.de/register/koerperschaftsregister/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/register/personen/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/register/objekte/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/register/orte/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/informationen-zur-edition/bibliographie/$1"/>
+                                
+                                <valItem ident="https://hainhofer.hab.de/img/mss/23-3-aug-2f/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/img/mss/6-6-aug-2f/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/img/mss/68-3-aug-2f/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/img/mss/60-21-aug-8f/$1"/>                                
+                                <valItem ident="https://hainhofer.hab.de/img/register/$1"/>                                
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="profileDesc">
+                    <content>
+                        <rng:ref name="calendarDesc"/>
+                        <rng:ref name="handNotes"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="ptr">
+                    <content>
+                        <empty/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="req">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="publicationStmt">
+                    <content>
+                        <rng:ref name="publisher"/>
+                        <rng:ref name="date"/>
+                        <rng:ref name="availability"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="publisher">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="rdg">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="add"/>
+                                <rng:ref name="app"/>
+                                <rng:ref name="choice"/>
+                                <rng:ref name="date"/>
+                                <rng:ref name="ex"/>
+                                <rng:ref name="gap"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="lb"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="foreign"/>
+                                <rng:ref name="ref"/>
+                                <rng:ref name="sic"/>
+                                <rng:ref name="unclear"/>
+                                <rng:ref name="g"/>
+                                <rng:ref name="fw"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="wit" usage="req">
+                            <datatype>
+                                <rng:data type="string"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="n" usage="req">
+                            <datatype>
+                                <rng:data type="string"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="ref">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="add"/>
+                                <rng:ref name="app"/>
+                                <rng:ref name="choice"/>
+                                <rng:ref name="date"/>
+                                <rng:ref name="ex"/>
+                                <rng:ref name="gap"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="lb"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="foreign"/>
+                                <rng:ref name="sic"/>
+                                <rng:ref name="unclear"/>
+                                <rng:ref name="g"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="bibl"/>
+                                <rng:ref name="fw"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="opt">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="ref-regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:ref[@target][not(starts-with(@target,'http'))]"> <sch:let name="variable1" value="substring(./@target,5)"/> <sch:let name="variable2" value="substring(./@target,1,3)"/> <sch:assert test="(starts-with(./@target, 'http')) or (document('../Register/bibliography.xml')//*[@xml:id eq $variable1] and $variable2 eq 'lit')">Das Ziel der Verknüpfung ist nicht vorhanden oder die Adresse/ID fehlerhaft.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                            </constraintSpec>
+                            <constraintSpec scheme="schematron" ident="docavailable1">
+                                <constraint><sch:rule context="tei:ref[starts-with(@target,'http')][contains(@target,'#')]"><sch:assert test="unparsed-text-available(substring-before(@target,'#'))">ungültiger Hyperlink</sch:assert></sch:rule></constraint>
+                            </constraintSpec>
+                            <constraintSpec scheme="schematron" ident="docavailable2">
+                                <constraint><sch:rule context="tei:ref[starts-with(@target,'http')][not(contains(@target,'#'))]"><sch:assert test="unparsed-text-available(@target)">ungültiger Hyperlink</sch:assert></sch:rule></constraint>
+                            </constraintSpec>
+                        </attDef>
+                        <attDef ident="cRef" usage="opt">
+                            <datatype>
+                                <dataRef name="string"/> <!-- zulässige Inhalte siehe http://diglib.hab.de/rules/documentation/quoting_biblical.xml -->
+                            </datatype>       
+                            <constraintSpec scheme="schematron" ident="ref-regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:ref/@cRef"><sch:assert test="matches(.,'^(Gn|Ex|Lv|Nm|Dt|Ios|Idc|Rt|1\.Sm|2\.Sm|3\.Rg|4\.Rg|1\.Par|2\.Par|1\.Esr|2\.Esr|Tb|Idt|Est|Iob|Ps|Prv|Ecl|Ct|Sap|Sir|Is|Ier|Lam|Bar|Ez|Dn|Os|Ioel|Am|Abd|Ion|Mi|Na|Hab|So|Agg|Za|Mal|1\.Mcc|2\.Mcc|Mt|Mc|Lc|Io|Act|Rm|1\.Cor|2\.Cor|Gal|Eph|Phil|Col|1\.Th|2\.Th|1\.Tim|2\.Tim|Tit|Phlm|Hbr|Iac|1\.Pt|2\.Pt|1\.Io|2\.Io|3\.Io|Iud|Apc|OrMan|3\.Esr|4\.Esr|Ps-151|Laod)(_[0-9]+(,[0-9]+(-[0-9]+)?)?)?$')">Keine gültige Bibelstellenangabe gemäß http://diglib.hab.de/rules/documentation/quoting_biblical.xml</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                        <attDef ident="type" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="biblical"/>
+                            </valList>                           
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="rendition">
+                    <content>
+                        <textNode/>
+                    </content>
+                    <attList>
+                        <attDef ident="xml:id" usage="req">
+                            <valList type="closed">
+                                <valItem ident="aq"/>
+                                <valItem ident="i"/>
+                                <valItem ident="s"/>
+                                <valItem ident="sup"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="scheme" usage="req">
+                            <valList type="closed">
+                                <valItem ident="css"/>
+                                <valItem ident="free"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="repository">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="resp">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="respStmt">
+                    <content>
+                        <rng:ref name="resp"/>
+                        <rng:ref name="name"/>
+                    </content>
+                    <attList>
+                        <attDef ident="xml:id" usage="req">
+                            <datatype>
+                                <rng:data type="ID"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="row">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="cell"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="rs">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="add"/>
+                                <rng:ref name="app"/>
+                                <rng:ref name="choice"/>
+                                <rng:ref name="date"/>
+                                <rng:ref name="ex"/>
+                                <rng:ref name="gap"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="lb"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="foreign"/>
+                                <rng:ref name="ref"/>
+                                <rng:ref name="sic"/>
+                                <rng:ref name="unclear"/>
+                                <rng:ref name="g"/>
+                                <rng:ref name="fw"/>
+                                <rng:ref name="cb"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="ref" usage="req">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="rs-regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:rs"> <sch:let name="variable1" value="substring(./@ref,5)"/> <sch:let name="variable2" value="substring(./@ref,1,3)"/> <sch:let name="variable3" value="substring(./@ref,5,1)"/> <sch:assert test="(
+                                    
+                                    $variable1 ne '' and
+                                    
+                                    (
+                                    document('../Register/register-person/register-person-a.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-b.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-c.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-d.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-e.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-f.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-g.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-h.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-i.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-j.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-k.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-l.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-m.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-n.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-o.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-p.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-qr.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-s.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-t.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-u.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-v.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-w.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-xyz.xml')//*[@xml:id eq $variable1]
+                                    )
+                                    
+                                    and $variable2 eq 'psn')
+                                    
+                                    or (document('../Register/register-place.xml')//*[@xml:id eq $variable1] and $variable2 eq 'plc') or (
+                                    
+                                    $variable1 ne '' and
+                                    (
+                                    document('../Register/register-org/register-org-a.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-b.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-c.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-d.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-e.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-f.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-g.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-h.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-i.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-j.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-k.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-l.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-m.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-n.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-o.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-p.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-qr.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-s.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-t.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-u.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-v.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-w.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-xyz.xml')//*[@xml:id eq $variable1]
+                                    )
+                                    
+                                    and $variable2 eq 'org') or 
+                                    
+                                    ($variable1 ne '' and
+                                    (
+                                    document('../Register/register-work/register-work-a.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-b.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-c.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-d.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-e.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-f.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-g.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-h.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-i.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-j.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-k.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-l.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-m.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-n.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-o.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-p.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-qr.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-s.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-t.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-u.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-v.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-w.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-work/register-work-xyz.xml')//*[@xml:id eq $variable1]
+                                    )
+                                    
+                                    and $variable2 eq 'wrk')
+                                    
+                                    or (document('../Register/bibliography.xml')//*[@xml:id eq $variable1] and $variable2 eq 'lit')">ID "<sch:value-of select="$variable1"/>" ist in der angegebenen Registerdatei nicht vorhanden.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                        <attDef ident="role" usage="req">
+                            <valList type="closed">
+                                <valItem ident="present"/>
+                                <valItem ident="remote"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="person"/>
+                                <valItem ident="place"/>
+                                <valItem ident="org"/>
+                                <valItem ident="work"/>
+                                <valItem ident="literature"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="sic">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="add"/>
+                                <rng:ref name="app"/>
+                                <rng:ref name="choice"/>
+                                <rng:ref name="date"/>
+                                <rng:ref name="ex"/>
+                                <rng:ref name="gap"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="lb"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="ref"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="foreign"/>
+                                <rng:ref name="g"/>
+                                <rng:ref name="fw"/>
+                                <rng:ref name="cb"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="sourceDesc">
+                    <content>
+                        <rng:ref name="msDesc"/>
+                        <rng:optional>
+                            <rng:ref name="listWit"/>
+                        </rng:optional>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="table">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="row"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="tagsDecl">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="rendition"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="TEI">
+                    <content>
+                        <rng:ref name="teiHeader"/>
+                        <rng:ref name="text"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="teiHeader">
+                    <content>
+                        <rng:ref name="fileDesc"/>
+                        <rng:ref name="encodingDesc"/>
+                        <rng:ref name="profileDesc"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="text">
+                    <content>
+                        <rng:ref name="body"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="title">
+                    <content>
+                        <rng:text/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="titleStmt">
+                    <content>
+                        <rng:ref name="title"/>
+                        <rng:ref name="author"/>
+                        <rng:ref name="respStmt"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="unclear">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="add"/>
+                                <rng:ref name="app"/>
+                                <rng:ref name="choice"/>
+                                <rng:ref name="date"/>
+                                <rng:ref name="ex"/>
+                                <rng:ref name="gap"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="lb"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="ref"/>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="foreign"/>
+                                <rng:ref name="g"/>
+                                <rng:ref name="fw"/>
+                                <rng:ref name="cb"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="value">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="witness">
+                    <content>
+                        <elementRef key="bibl"/>                        
+                        <elementRef minOccurs="0" key="ptr"/>                        
+                    </content>
+                    <attList>
+                        <attDef ident="xml:id" usage="req">
+                            <datatype>
+                                <rng:data type="ID"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+            </schemaSpec>
+        </body>
+    </text>
+</TEI>
diff --git a/werkregister.odd b/werkregister.odd
new file mode 100644
index 0000000000000000000000000000000000000000..9b91e9944f719847e32e55f054ee08eaf061efd4
--- /dev/null
+++ b/werkregister.odd
@@ -0,0 +1,942 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml"
+    schematypens="http://purl.oclc.org/dsdl/schematron"?>
+<TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
+    <teiHeader>
+        <fileDesc>
+            <titleStmt>
+                <title>ODD für das Objektregister in der Edition der Reise- und Sammlungsbeschreibungen Philipp Hainhofers (1578-1647)</title>
+            </titleStmt>
+            <publicationStmt>
+                <publisher>Herzog August Bibliothek Wolfenbüttel</publisher>
+                <date when="2020"/>
+                <availability>
+                    <licence target="https://creativecommons.org/licenses/by-sa/4.0/">
+                        <p>Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</p>
+                    </licence>
+                </availability>
+            </publicationStmt>
+            <sourceDesc>
+                <p>Born digital: no previous source exists.</p>
+            </sourceDesc>
+        </fileDesc>
+    </teiHeader>
+    <text>
+        <body>
+            <schemaSpec ident="objektregister">
+                
+                <elementSpec ident="availability">
+                    <content>
+                        <rng:ref name="licence"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="bibl">
+                    <content>
+                        <alternate>
+                            <sequence>
+                                <elementRef key="ptr"/>
+                                <elementRef key="citedRange" minOccurs="0"/>
+                            </sequence>
+                            <sequence>
+                                <textNode/>
+                                <elementRef key="biblScope" minOccurs="0" maxOccurs="unbounded"/>
+                            </sequence>
+                            <sequence>
+                                <elementRef key="ref"/>
+                                <textNode/>
+                                <elementRef key="citedRange" minOccurs="0"/>
+                            </sequence>
+                        </alternate>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="biblScope">
+                    <content>
+                        <alternate maxOccurs="unbounded">
+                            <textNode/>
+                            <elementRef key="rs"/>
+                        </alternate>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="body">
+                    <content>
+                        <rng:ref name="list"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="citedRange">
+                    <content>
+                        <rng:text/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="opt">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="catDesc">
+                    <content>
+                        <rng:text/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="category">
+                    <content>
+                        <rng:ref name="catDesc"/>
+                        <rng:zeroOrMore>
+                            <rng:ref name="category"/>
+                        </rng:zeroOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="xml:id" usage="req">
+                            <datatype>
+                                <rng:data type="ID"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="classDecl">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="taxonomy"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="date">
+                    <content>
+                        <rng:choice>
+                            <rng:text/>
+                            <rng:empty/>
+                        </rng:choice>
+                    </content>
+                    <attList>
+                        <attDef ident="when-iso" usage="opt">
+                            <datatype>
+                                <rng:data type="gYear"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="notBefore-iso" usage="opt">
+                            <datatype>
+                                <rng:data type="gYear"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="notAfter-iso" usage="opt">
+                            <datatype>
+                                <rng:data type="gYear"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="precision" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="low"/>
+                                <valItem ident="high"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="when" usage="opt">
+                            <datatype>
+                                <rng:data type="gYear"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <constraintSpec scheme="schematron" ident="dateatts">
+                    <constraint> <sch:pattern> <sch:rule context="tei:date[not(parent::tei:publicationStmt)]"> <sch:assert test="(./@when-iso and not(./@notBefore-iso or ./@notAfter-iso)) or ((./@notBefore-iso or ./@notAfter-iso) and not(./@when-iso))">Es darf nur entweder ein einzelnes Jahr oder eine Zeitspanne angegeben werden, nicht beides.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                </constraintSpec>
+                
+                <elementSpec ident="desc">
+                    <content>
+                        <rng:choice>
+                            <rng:oneOrMore>
+                                <rng:ref name="term"/>
+                            </rng:oneOrMore>
+                            <rng:interleave>
+                                <rng:optional>
+                                    <rng:text/>
+                                </rng:optional>
+                                <rng:optional>
+                                    <rng:ref name="ref"/>
+                                </rng:optional>
+                                <rng:optional>
+                                    <rng:ref name="label"/>
+                                </rng:optional>
+                            </rng:interleave>
+                        </rng:choice>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="encodingDesc">
+                    <content>
+                        <rng:ref name="listPrefixDef"/>
+                        <rng:ref name="classDecl"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="fileDesc">
+                    <content>
+                        <rng:ref name="titleStmt"/>
+                        <rng:ref name="publicationStmt"/>
+                        <rng:ref name="sourceDesc"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="graphic">
+                    <content>
+                        <rng:ref name="desc"/>
+                    </content>
+                    <attList>
+                        <attDef ident="url" usage="req">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="graphic-regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:graphic/@url"> <sch:assert test="matches(.,'^img:')">Präfix "img:" fehlt.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="hi">
+                    <content>
+                        <rng:mixed>
+                            <rng:zeroOrMore>
+                                <rng:choice>
+                                    <rng:ref name="rs"/>
+                                    <rng:ref name="bibl"/>
+                                    <rng:ref name="ref"/>
+                                </rng:choice>
+                            </rng:zeroOrMore>
+                        </rng:mixed>
+                    </content>
+                    <attList>
+                        <attDef ident="rendition" usage="req">
+                            <valList type="closed">
+                                <valItem ident="#i"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="idno">
+                    <content>
+                        <rng:text/>
+                    </content>
+                    <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>
+                    </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>
+                    </constraintSpec>
+                    <constraintSpec scheme="schematron" ident="regex">
+                        <constraint><sch:pattern> <sch:rule context="tei:idno[@type='URI']"><sch:assert test="matches(.,'^\S[\s\S]+\S$')">darf nicht mit Leerzeichen beginnen oder enden</sch:assert></sch:rule></sch:pattern></constraint>
+                    </constraintSpec>
+                    
+                    <attList>
+                        <attDef ident="type">
+                            <valList type="closed">
+                                <valItem ident="URI"/>
+                                <valItem ident="local"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="item">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="note"/>
+                        </rng:oneOrMore>
+                        <rng:zeroOrMore>
+                            <rng:ref name="idno"/>
+                        </rng:zeroOrMore>
+                        <rng:oneOrMore>
+                            <rng:ref name="name"/>
+                        </rng:oneOrMore>
+                        <rng:oneOrMore>
+                            <rng:ref name="listBibl"/>
+                        </rng:oneOrMore>
+                        <rng:oneOrMore>
+                            <rng:ref name="objectType"/>
+                        </rng:oneOrMore>
+                        <rng:optional>
+                            <rng:ref name="desc"/>
+                        </rng:optional>
+                        <rng:optional>
+                            <rng:ref name="linkGrp"/>
+                        </rng:optional>
+                        <rng:ref name="date"/>
+                        <rng:zeroOrMore>
+                            <rng:choice>
+                                <rng:ref name="material"/>
+                                <rng:ref name="measureGrp"/>
+                                <rng:ref name="orgName"/>
+                                <rng:ref name="placeName"/>
+                                <rng:ref name="idno"/>
+                                <rng:ref name="note"/>
+                                <rng:ref name="graphic"/>
+                            </rng:choice>
+                        </rng:zeroOrMore>
+                        <rng:optional>
+                            <rng:ref name="linkGrp"/>
+                        </rng:optional>
+                        <rng:optional>
+                            <rng:ref name="listBibl"/>
+                        </rng:optional>
+                    </content>
+                    <attList>
+                        <attDef ident="xml:id" usage="req">
+                            <datatype>
+                                <rng:data type="ID"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="label">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="licence">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="req">
+                            <valList type="closed">
+                                <valItem ident="https://creativecommons.org/licenses/by-sa/4.0/"/>                                
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="link">
+                    <content>
+                        <rng:empty/>
+                    </content>
+                    <attList>
+                        <attDef ident="ana" usage="req">
+                            <valList type="closed">
+                                <valItem ident="http://purl.org/dc/elements/1.1/creator"/>
+                                <valItem ident="http://erlangen-crm.org/current/P53_has_former_or_current_location"/>
+                                <valItem ident="http://erlangen-crm.org/current/P62_depicts"/>
+                                <valItem ident="http://erlangen-crm.org/current/P62i_is_depicted_by"/>
+                                <valItem ident="http://erlangen-crm.org/current/P89i_contains"/>
+                                <valItem ident="http://erlangen-crm.org/current/P53i_is_former_or_current_location_of"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="target" usage="req">
+                            <datatype>
+                                <rng:data type="string"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="regex">
+                               <constraint> <sch:pattern> <sch:rule context="tei:link">
+                                    <sch:let name="wrkid2" value="substring-after(./@target,' #')"/>
+                                    <sch:let name="wrkid1" value="substring-after(substring-before(./@target,' '),'#')"/>
+                                    <sch:let name="psnid" value="substring-after(./@target,'psn:')"/>
+                                    <sch:let name="plcid" value="substring-after(./@target,'plc:')"/>
+                                    <sch:let name="orgid" value="substring-after(./@target,'org:')"/>
+                                    <sch:assert test="($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
+                                        document('../Register/register-work/register-work-c.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-d.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-e.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-f.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-g.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-h.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-i.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-j.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-k.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-l.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-m.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-n.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-o.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-p.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-qr.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-s.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-t.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-u.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-v.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-w.xml')//*[@xml:id eq $wrkid1] or
+                                        document('../Register/register-work/register-work-xyz.xml')//*[@xml:id eq $wrkid1]
+                                        )
+                                        )
+                                        
+                                        and (
+                                        
+                                        ($wrkid2 ne '' and
+                                        (
+                                        document('../Register/register-work/register-work-a.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-b.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-c.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-d.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-e.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-f.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-g.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-h.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-i.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-j.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-k.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-l.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-m.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-n.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-o.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-p.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-qr.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-s.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-t.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-u.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-v.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-w.xml')//*[@xml:id eq $wrkid2] or
+                                        document('../Register/register-work/register-work-xyz.xml')//*[@xml:id eq $wrkid2]
+                                        )
+                                        )
+                                        
+                                        or
+                                        
+                                        ($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
+                                        document('../Register/register-person/register-person-c.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-d.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-e.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-f.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-g.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-h.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-i.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-j.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-k.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-l.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-m.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-n.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-o.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-p.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-qr.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-s.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-t.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-u.xml')//*[@xml:id eq $psnid] or
+                                        document('../Register/register-person/register-person-v.xml')//*[@xml:id eq $psnid] or
+                                        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]
+                                        )
+                                        )
+                                        
+                                        or (document('../Register/register-place.xml')//*[@xml:id eq $plcid]) or (
+                                        
+                                        $orgid ne '' and
+                                        (
+                                        document('../Register/register-org/register-org-a.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-b.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-c.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-d.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-e.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-f.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-g.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-h.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-i.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-j.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-k.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-l.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-m.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-n.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-o.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-p.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-qr.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-s.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-t.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-u.xml')//*[@xml:id eq $orgid] or
+                                        document('../Register/register-org/register-org-v.xml')//*[@xml:id eq $orgid] or
+                                        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]
+                                        )
+                                        )                                            
+                                        )">ID ist in den Registern nicht vorhanden.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                                
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="linkGrp">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="link"/>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="targFunc" usage="req">
+                            <valList type="closed">
+                                <valItem ident="active passive"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="listBibl">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="bibl"/>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="occurrences"/>
+                                <valItem ident="references"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="subtype" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="auto"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="list">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="item"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="listPrefixDef">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="prefixDef"/>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="material">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="measureGrp">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="name">
+                    <content>
+                        <rng:ref name="term"/>
+                    </content>
+                    <attList>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="preferred"/>
+                                <valItem ident="variant"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="note">
+                    <content>
+                        <rng:choice>
+                            <rng:oneOrMore>
+                                <rng:ref name="p"/>
+                            </rng:oneOrMore>
+                            <rng:oneOrMore>
+                                <rng:choice>
+                                    <rng:ref name="rs"/>
+                                    <rng:ref name="hi"/>
+                                    <rng:ref name="bibl"/>
+                                    <rng:ref name="ref"/>
+                                    <rng:text/>
+                                </rng:choice>
+                            </rng:oneOrMore>
+                        </rng:choice>
+                    </content>
+                    <attList>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="annotation"/>
+                                <valItem ident="change"/>
+                                <valItem ident="status"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="subtype" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="desc"/>
+                                <valItem ident="commentary"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="objectType">
+                    <content>
+                        <empty/>
+                    </content>
+                    <attList>
+                        <attDef ident="n" usage="req">
+                            <valList type="closed">
+                                <valItem ident="1"/>
+                                <valItem ident="2"/>
+                                <valItem ident="3"/>
+                                <valItem ident="4"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="ref" usage="req">
+                            <datatype>
+                                <rng:data type="string"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="regex">
+                                <constraint>
+                                    <sch:pattern>
+                                        <sch:rule context="tei:objectType">                                            
+                                            <sch:report test="string-length(@ref) = 0">Kategorie fehlt.</sch:report>
+                                        </sch:rule>
+                                    </sch:pattern>
+                                </constraint>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="orgName">
+                    <content>
+                        <textNode/>
+                    </content>
+                    <attList>
+                        <attDef ident="ref" usage="opt">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="p">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:choice>
+                                <rng:ref name="rs"/>
+                                <rng:ref name="hi"/>
+                                <rng:ref name="bibl"/>
+                                <rng:ref name="ref"/>
+                                <rng:text/>
+                            </rng:choice>
+                        </rng:oneOrMore>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="placeName">
+                    <content>
+                        <textNode/>
+                    </content>
+                    <attList>
+                        <attDef ident="ref" usage="opt">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                        </attDef>
+                        <attDef ident="role" usage="opt">
+                            <valList type="closed">
+                                <valItem ident="former_location"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="prefixDef">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                    <attList>
+                        <attDef ident="ident" usage="req">
+                            <valList type="closed">
+                                <valItem ident="lit"/>
+                                <valItem ident="plc"/>
+                                <valItem ident="psn"/>
+                                <valItem ident="org"/>
+                                <valItem ident="img"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="matchPattern" usage="req">
+                            <valList type="closed">
+                                <valItem ident="(.+)"/>
+                            </valList>
+                        </attDef>
+                        <attDef ident="replacementPattern" usage="req">
+                            <valList type="closed">
+                                <valItem ident="https://hainhofer.hab.de/register/koerperschaftsregister/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/register/orte/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/register/personen/$1"/>
+                                <valItem ident="https://hainhofer.hab.de/informationen-zur-edition/bibliographie/$1"/>
+                                
+                                <valItem ident="https://hainhofer.hab.de/img/register/$1"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="ptr">
+                    <content>
+                        <rng:empty/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="req">
+                            <datatype>
+                                <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>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="publicationStmt">
+                    <content>
+                        <rng:ref name="publisher"/>
+                        <rng:ref name="date"/>
+                        <rng:ref name="availability"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="publisher">
+                    <content>
+                        <textNode/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="ref">
+                    <content>
+                        <textNode/>
+                    </content>
+                    <attList>
+                        <attDef ident="target" usage="req">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="ref-regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:bibl/tei:ref"> <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>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="rs">
+                    <content>
+                        <rng:mixed>
+                            <rng:ref type="rs"/>
+                        </rng:mixed>
+                    </content>
+                    <attList>
+                        <attDef ident="ref" usage="opt">
+                            <!-- eigentlich immer erforderlich, nur nicht in KWIC-Snippets -->
+                            <datatype>
+                                <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="(                                    
+                                    $variable3 ne '' and
+                                    (
+                                    document('../Register/register-work/register-work-a.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-b.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-c.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-d.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-e.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-f.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-g.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-h.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-i.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-j.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-k.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-l.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-m.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-n.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-o.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-p.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-qr.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-s.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-t.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-u.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-v.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-w.xml')//*[@xml:id eq $variable3] or
+                                    document('../Register/register-work/register-work-xyz.xml')//*[@xml:id eq $variable3]
+                                    )
+                                    
+                                    and matches($variable2, '^#'))
+                                    
+                                    or (document('../Register/register-place.xml')//*[@xml:id eq $variable1] and $variable2 eq 'plc') or (
+                                    
+                                    $variable1 ne '' and
+                                    (
+                                    document('../Register/register-org/register-org-a.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-b.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-c.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-d.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-e.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-f.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-g.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-h.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-i.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-j.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-k.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-l.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-m.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-n.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-o.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-p.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-qr.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-s.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-t.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-u.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-v.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-w.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-org/register-org-xyz.xml')//*[@xml:id eq $variable1]
+                                    )
+                                    
+                                    and $variable2 eq 'org'
+                                    
+                                    ) or 
+                                    
+                                    ($variable1 ne '' and
+                                    
+                                    (
+                                    document('../Register/register-person/register-person-a.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-b.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-c.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-d.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-e.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-f.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-g.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-h.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-i.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-j.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-k.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-l.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-m.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-n.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-o.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-p.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-qr.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-s.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-t.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-u.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-v.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-w.xml')//*[@xml:id eq $variable1] or
+                                    document('../Register/register-person/register-person-xyz.xml')//*[@xml:id eq $variable1]
+                                    )
+                                    
+                                    and $variable2 eq 'psn')
+                                    
+                                    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> </sch:pattern> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                        <attDef ident="type" usage="req">
+                            <valList type="closed">
+                                <valItem ident="person"/>
+                                <valItem ident="place"/>
+                                <valItem ident="org"/>
+                                <valItem ident="work"/>
+                                <valItem ident="literature"/>
+                                <valItem ident="quote"/>
+                                <!-- wird benötigt fürs Hervorheben in KWIC-Snippets -->
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="sourceDesc">
+                    <content>
+                        <rng:ref name="p"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="taxonomy">
+                    <content>
+                        <rng:oneOrMore>
+                            <rng:ref name="category"/>
+                        </rng:oneOrMore>
+                    </content>
+                    <attList>
+                        <attDef ident="n" usage="req">
+                            <valList type="closed">
+                                <valItem ident="1"/>
+                                <valItem ident="2"/>
+                                <valItem ident="3"/>
+                                <valItem ident="4"/>
+                            </valList>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="TEI">
+                    <content>
+                        <rng:ref name="teiHeader"/>
+                        <rng:ref name="text"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="teiHeader">
+                    <content>
+                        <rng:ref name="fileDesc"/>
+                        <rng:ref name="encodingDesc"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="term">
+                    <content>
+                        <textNode/>
+                    </content>
+                    <attList>
+                        <attDef ident="sortKey" usage="opt">
+                            <datatype>
+                                <rng:data type="string"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="sortkey-regex">
+                                <constraint> <sch:pattern> <sch:rule context="tei:term/@sortKey"> <sch:assert test="matches(.,'^[0-9a-z_\-]+$')">Der Sortierschlüssel darf nur Kleinbuchstaben, Ziffern, Bindestriche und Unterstriche enthalten.</sch:assert> </sch:rule> </sch:pattern> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                        <attDef ident="ref" usage="opt">
+                            <datatype>
+                                <rng:data type="anyURI"/>
+                            </datatype>
+                            <constraintSpec scheme="schematron" ident="regex">
+                                <constraint> <sch:assert test="matches(.,'^http://d-nb.info/gnd/')">Zeichenkette entspricht nicht den Vorgaben.</sch:assert> </constraint>
+                            </constraintSpec>
+                        </attDef>
+                    </attList>
+                </elementSpec>
+                
+                <elementSpec ident="text">
+                    <content>
+                        <rng:ref name="body"/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="title">
+                    <content>
+                        <rng:text/>
+                    </content>
+                </elementSpec>
+                
+                <elementSpec ident="titleStmt">
+                    <content>
+                        <rng:ref name="title"/>
+                    </content>
+                </elementSpec>
+                
+            </schemaSpec>
+        </body>
+    </text>
+</TEI>