diff --git a/schema/edxml.rng b/schema/edxml.rng index 463ad38b3f8915fa8cbc6ff385d01ba83f219b7e..f5389ff4d540b664a30dd64a56ca0669369cab3f 100644 --- a/schema/edxml.rng +++ b/schema/edxml.rng @@ -16,6 +16,19 @@ <attribute name="ana"/> </define> + <define name="attr.cert"> + <attribute name="cert"> + <list> + <choice> + <value>high</value> + <a:documentation>(default) Die Aussage ist sicher und lässt sich zweifelsfrei belegen.</a:documentation> + <value>low</value> + <a:documentation>Die Aussage ist unsicher. Sie lässt sich nicht zweifelsfrei belegen.</a:documentation> + </choice> + </list> + </attribute> + </define> + <define name="attr.copy"> <attribute name="copy"> <data type="boolean"/> @@ -324,15 +337,8 @@ <ref name="attr.ana"/> </optional> <optional> - <attribute name="cert"> - <list> - <value>uncertain</value> - </list> - </attribute> + <ref name="attr.cert"/> </optional> - <zeroOrMore> - <ref name="model.transcriptional"/> - </zeroOrMore> <text/> </element> </define> @@ -613,6 +619,53 @@ </element> </define> + <define name="elem.relations"> + <element name="relations"> + <element name="head"> + <text/> + </element> + <zeroOrMore> + <ref name="elem.relation"/> + </zeroOrMore> + </element> + </define> + + <define name="elem.relation"> + <element name="relation"> + <attribute name="type"/> + <attribute name="source"> + <data type="anyURI"/> + <sch:pattern> + <sch:rule context="edxml:relation/@source"> + <sch:let name="id" value="substring-after(., '#')"/> + <sch:assert test="//*[@xml:id = $id]" role="error">(ID '<sch:value-of + select="$id"/>' gibt's nicht!): Die ID in @<sch:name/> gibt es in + diesem Dokument nicht!</sch:assert> + </sch:rule> + </sch:pattern> + </attribute> + <attribute name="target"> + <data type="anyURI"/> + <sch:pattern> + <sch:rule context="edxml:relation/@target"> + <sch:let name="id" value="substring-after(., '#')"/> + <sch:assert test="//*[@xml:id = $id]" role="error">(ID '<sch:value-of + select="$id"/>' gibt's nicht!): Die ID in @<sch:name/> gibt es in + diesem Dokument nicht!</sch:assert> + </sch:rule> + </sch:pattern> + </attribute> + <text/> + </element> + </define> + + <define name="elem.ref"> + <element name="ref"> + <attribute name="target"/> + <text/> + </element> + </define> + <define name="elem.phr"> <element name="phr"> <optional> @@ -892,10 +945,15 @@ <define name="elem.translation"> <element name="translation"> <ref name="attr.xml.lang"/> + <optional> + <ref name="attr.cert"/> + </optional> <interleave> <!--<ref name="group.inline.elements"/>--> <ref name="model.philological.translit"/> - <ref name="elem.hi"/> + <zeroOrMore> + <ref name="elem.hi"/> + </zeroOrMore> <text/> </interleave> </element> @@ -1006,6 +1064,9 @@ <optional> <ref name="attr.ana"/> </optional> + <optional> + <ref name="attr.cert"/> + </optional> <optional> <ref name="attr.corresp"/> </optional> @@ -1575,16 +1636,16 @@ </optional> </element> </define> - + <define name="elem.tei.availability"> <element name="tei:availability"> - <ref name="elem.tei.licence"></ref> + <ref name="elem.tei.licence"/> </element> </define> - + <define name="elem.tei.licence"> <element name="tei:licence"> - <ref name="attr.tei.target"></ref> + <ref name="attr.tei.target"/> </element> </define> @@ -1593,7 +1654,14 @@ <optional> <ref name="attr.xml.id"/> </optional> - <text/> + <oneOrMore> + <optional> + <ref name="elem.g"/> + </optional> + <optional> + <text/> + </optional> + </oneOrMore> </element> </define> @@ -1611,7 +1679,14 @@ <optional> <ref name="attr.xml.id"/> </optional> - <text/> + <oneOrMore> + <optional> + <ref name="elem.g"/> + </optional> + <optional> + <text/> + </optional> + </oneOrMore> </element> </define> @@ -1620,7 +1695,14 @@ <optional> <ref name="attr.xml.id"/> </optional> - <text/> + <oneOrMore> + <optional> + <ref name="elem.g"/> + </optional> + <optional> + <text/> + </optional> + </oneOrMore> </element> </define> @@ -1629,7 +1711,14 @@ <optional> <ref name="attr.xml.id"/> </optional> - <text/> + <oneOrMore> + <optional> + <ref name="elem.g"/> + </optional> + <optional> + <text/> + </optional> + </oneOrMore> </element> </define> @@ -1638,7 +1727,14 @@ <optional> <ref name="attr.xml.id"/> </optional> - <text/> + <oneOrMore> + <optional> + <ref name="elem.g"/> + </optional> + <optional> + <text/> + </optional> + </oneOrMore> </element> </define> @@ -1647,7 +1743,14 @@ <optional> <ref name="attr.xml.id"/> </optional> - <text/> + <oneOrMore> + <optional> + <ref name="elem.g"/> + </optional> + <optional> + <text/> + </optional> + </oneOrMore> </element> </define> @@ -1656,7 +1759,14 @@ <optional> <ref name="attr.xml.id"/> </optional> - <text/> + <oneOrMore> + <optional> + <ref name="elem.g"/> + </optional> + <optional> + <text/> + </optional> + </oneOrMore> </element> </define> @@ -1668,7 +1778,15 @@ <optional> <ref name="attr.tei.degree"/> </optional> - <text/> + <oneOrMore> + <optional> + <ref name="elem.g"/> + </optional> + <optional> + <text/> + </optional> + </oneOrMore> + <!-- 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> @@ -1677,7 +1795,14 @@ <optional> <ref name="attr.xml.id"/> </optional> - <text/> + <oneOrMore> + <optional> + <ref name="elem.g"/> + </optional> + <optional> + <text/> + </optional> + </oneOrMore> </element> </define> @@ -1686,7 +1811,14 @@ <optional> <ref name="attr.xml.id"/> </optional> - <text/> + <oneOrMore> + <optional> + <ref name="elem.g"/> + </optional> + <optional> + <text/> + </optional> + </oneOrMore> </element> </define> @@ -1695,7 +1827,14 @@ <optional> <ref name="attr.xml.id"/> </optional> - <text/> + <oneOrMore> + <optional> + <ref name="elem.g"/> + </optional> + <optional> + <text/> + </optional> + </oneOrMore> </element> </define> @@ -1704,7 +1843,14 @@ <optional> <ref name="attr.xml.id"/> </optional> - <text/> + <oneOrMore> + <optional> + <ref name="elem.g"/> + </optional> + <optional> + <text/> + </optional> + </oneOrMore> </element> </define> @@ -1713,7 +1859,14 @@ <optional> <ref name="attr.xml.id"/> </optional> - <text/> + <oneOrMore> + <optional> + <ref name="elem.g"/> + </optional> + <optional> + <text/> + </optional> + </oneOrMore> </element> </define> @@ -1722,7 +1875,14 @@ <optional> <ref name="attr.xml.id"/> </optional> - <text/> + <oneOrMore> + <optional> + <ref name="elem.g"/> + </optional> + <optional> + <text/> + </optional> + </oneOrMore> </element> </define> @@ -1731,7 +1891,14 @@ <optional> <ref name="attr.xml.id"/> </optional> - <text/> + <oneOrMore> + <optional> + <ref name="elem.g"/> + </optional> + <optional> + <text/> + </optional> + </oneOrMore> </element> </define> @@ -1740,7 +1907,14 @@ <optional> <ref name="attr.xml.id"/> </optional> - <text/> + <oneOrMore> + <optional> + <ref name="elem.g"/> + </optional> + <optional> + <text/> + </optional> + </oneOrMore> </element> </define> @@ -1753,9 +1927,9 @@ </choice> </attribute> </define> - + <define name="attr.tei.target"> - <attribute name="target"/> + <attribute name="target"/> </define> </grammar>