diff --git a/transkription.odd b/transkription.odd index 09f71661ad58ba948159656cac419b539a33c726..e4a30e00a575a1d42ced9bf618cf3695b1515714 100644 --- a/transkription.odd +++ b/transkription.odd @@ -1174,16 +1174,39 @@ <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> - <!-- alt (falsch positiv bei z.B. <https://www.deutschestextarchiv.de/wander_sprichwoerterlexikon01_1867/638>): --> - <!--<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> + <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 ($variable1 ne '' and + ( + document('../Register/bibliography/bibliography-a.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-b.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-c.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-d.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-e.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-f.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-g.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-h.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-i.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-j.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-k.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-l.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-m.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-n.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-o.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-p.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-qr.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-s.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-t.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-u.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-v.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-w.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-xyz.xml')//*[@xml:id eq $variable1] + ) and $variable2 eq 'lit')">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 role="warning" 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>--> - <!-- neu: --> + <constraint><sch:rule context="tei:ref[starts-with(@target,'http')][not(contains(@target,'#'))]"><sch:assert role="warning" test="unparsed-text-available(@target)">ungültiger Hyperlink</sch:assert></sch:rule></constraint> + </constraintSpec> <constraintSpec scheme="schematron" ident="uri"> <constraint><sch:rule context="tei:ref[starts-with(@target,'http')]"><sch:assert test="matches(@target,'^https?://\S+$')">ungültiger Hyperlink</sch:assert></sch:rule></constraint> </constraintSpec> @@ -1410,7 +1433,32 @@ 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> + or ($variable1 ne '' and + ( + document('../Register/bibliography/bibliography-a.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-b.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-c.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-d.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-e.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-f.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-g.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-h.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-i.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-j.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-k.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-l.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-m.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-n.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-o.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-p.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-qr.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-s.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-t.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-u.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-v.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-w.xml')//*[@xml:id eq $variable1] or + document('../Register/bibliography/bibliography-xyz.xml')//*[@xml:id eq $variable1] + ) and $variable2 eq 'lit')">ID "<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">