diff --git a/samples/2024-04-09.c_KTU_1.14_II.include.xml b/samples/2024-04-09.c_KTU_1.14_II.include.xml index 1bb49b0e0731f014d7ee3a9cf4b92c5d2024a705..efc8112285b9c545e9ad2763a2d226dc66d4b6e4 100644 --- a/samples/2024-04-09.c_KTU_1.14_II.include.xml +++ b/samples/2024-04-09.c_KTU_1.14_II.include.xml @@ -57,6 +57,7 @@ <facsimile xml:id="facs_2"> <surface> <column n="2" xml:id="column_2"> + <tei:damage unit="line"></tei:damage> <line n="i 51"><part xml:id="line_1.14_I_51_1_overlap"><tei:damage>x x x x x x x x </tei:damage></part><part xml:id="line_1.14_I_51_2_overlap"><seg xml:id="seg_obc_d4c_pzb"><tei:damage>lm</tei:damage></seg></part></line> @@ -68,7 +69,7 @@ ><tei:damage>yrq</tei:damage></seg></part></line> <line n="ii 1"><part xml:id="line_1.14_II_1_1"><seg xml:id="seg_wvq_mhc_pzb" ><tei:damage>ḫrṣ</tei:damage></seg><tei:damage> . </tei:damage><seg - xml:id="seg_klv_4hc_pzb"><tei:damage degree="low">y</tei:damage>d</seg> . + xml:id="seg_klv_4hc_pzb"><tei:damage unit="character" degree="low">y</tei:damage>d</seg> . <seg xml:id="seg_wx4_phc_pzb">mq<tei:damage degree="low" >m</tei:damage>h</seg></part></line> <line n="ii 2"><part xml:id="line_1.14_II_2_1"><seg xml:id="seg_vgr_q3c_pzb" diff --git a/schema/edxml.rng b/schema/edxml.rng index 0793089794695cea973f53d4ca532bd7088ac549..6943d8d7233174ffa0b56885249784c53bdbda38 100644 --- a/schema/edxml.rng +++ b/schema/edxml.rng @@ -17,13 +17,15 @@ </define> <define name="attr.cert"> - <attribute name="cert"> - <list> + <attribute name="cert" a:defaultValue="high"> + <list> <choice> <value>high</value> - <a:documentation>(default) Die Aussage ist sicher und lässt sich zweifelsfrei belegen.</a:documentation> + <a:documentation>Die Aussage ist sicher und lässt sich zweifelsfrei belegen. + [default]</a:documentation> <value>low</value> - <a:documentation>Die Aussage ist unsicher. Sie lässt sich nicht zweifelsfrei belegen.</a:documentation> + <a:documentation>Die Aussage ist unsicher. Sie lässt sich nicht zweifelsfrei + belegen.</a:documentation> </choice> </list> </attribute> @@ -237,6 +239,9 @@ <zeroOrMore> <ref name="elem.note"/> </zeroOrMore> + <zeroOrMore> + <ref name="elem.tei.damage"/> + </zeroOrMore> <zeroOrMore> <ref name="elem.metamark"/> </zeroOrMore> @@ -552,7 +557,7 @@ <zeroOrMore> <ref name="elem.p"/> </zeroOrMore> - <ref name="model.pContentLike"></ref> + <ref name="model.pContentLike"/> </choice> <sch:pattern> <sch:rule @@ -563,7 +568,9 @@ </sch:pattern> <sch:pattern> <sch:rule context="edxml:note"> - <sch:report test="./ancestor::edxml:note" role="error">Note-Elemente dürfen nicht in Note-Elementen platziert werden (auch nicht als descendants)!</sch:report> + <sch:report test="./ancestor::edxml:note" role="error">Note-Elemente dürfen + nicht in Note-Elementen platziert werden (auch nicht als + descendants)!</sch:report> </sch:rule> </sch:pattern> </element> @@ -579,7 +586,7 @@ <define name="elem.p"> <element name="p"> - <ref name="model.pContentLike"></ref> + <ref name="model.pContentLike"/> </element> </define> @@ -715,7 +722,7 @@ </zeroOrMore> <zeroOrMore> <ref name="elem.textBlock"/> - </zeroOrMore> + </zeroOrMore> <zeroOrMore> <ref name="elem.w"/> </zeroOrMore> @@ -725,7 +732,7 @@ <text/> </interleave> </element> - </define> + </define> <define name="elem.rendition"> <element name="rendition"> @@ -838,7 +845,7 @@ <attribute name="n"/> </optional> <oneOrMore> - <ref name="elem.column"/> + <ref name="elem.column"/> </oneOrMore> <optional> <ref name="elem.notes"/> @@ -874,18 +881,33 @@ <choice> <group> <choice> - <oneOrMore><ref name="elem.column"/></oneOrMore> - <oneOrMore><ref name="elem.line"/></oneOrMore> - <oneOrMore><ref name="model.line.inline"/></oneOrMore> + <oneOrMore> + <ref name="elem.column"/> + </oneOrMore> + <oneOrMore> + <group> + <interleave> + <zeroOrMore> + <ref name="elem.line"/> + </zeroOrMore> + <zeroOrMore> + <ref name="elem.tei.damage"/> + </zeroOrMore> + </interleave> + </group> + </oneOrMore> + <oneOrMore> + <ref name="model.line.inline"/> + </oneOrMore> </choice> </group> - <group> - <oneOrMore><ref name="model.philological.translit"/></oneOrMore> - </group> + <oneOrMore> + <ref name="model.philological.translit"/> + </oneOrMore> </choice> </element> </define> - + <define name="elem.title"> <element name="title"> @@ -1228,7 +1250,7 @@ <ref name="elem.note"/> </choice> </define> - + <define name="model.pContentLike"> <interleave> <zeroOrMore> @@ -1723,6 +1745,26 @@ <define name="elem.tei.damage"> <element name="tei:damage"> + <attribute name="unit"> + <list> + <choice> + <value>character</value> + <value>line</value> + </choice> + </list> + <a:documentation>Definiert, ob sich tei.damage auf Zeilen oder Zeichen + bezieht.</a:documentation> + </attribute> + <optional> + <attribute name="atLeast"/> + <a:documentation>Definiert die Mindestmenge an beschädigten + Einheiten.</a:documentation> + </optional> + <optional> + <attribute name="atMost"/> + <a:documentation>Definiert die Höchstmenge an beschädigten + Einheiten.</a:documentation> + </optional> <optional> <ref name="attr.xml.id"/> </optional> @@ -1737,6 +1779,11 @@ <text/> </optional> </oneOrMore> + <sch:pattern> + <sch:rule context="*:damage[parent::*:column]"> + <sch:assert test="@unit='line'">Wenn tei:damage auf Zeilen-Ebene verwendet wird, muss der Wert von @unit="line" sein.</sch:assert> + </sch:rule> + </sch:pattern> <!-- Hier könnte man noch eine Schematron-Validierung einbauen: Wenn ein ancestor-Element surface/textBlock/transcription ist, dann darf tei.damage kein text() enthalten, sondern nur elem.g --> </element> </define>