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>