From 205fafa7ba1496e39cdeab8bd78c9d57eaa5bdb6 Mon Sep 17 00:00:00 2001 From: Peter Stadler <stadlerpeter@yahoo.fr> Date: Tue, 12 Nov 2024 23:15:28 +0100 Subject: [PATCH] add english version for sourcesTEI schema #68 --- schema/en/wegaSourcesTEI.rng | 4326 ++++++++++++++++++++++++++++++++++ 1 file changed, 4326 insertions(+) create mode 100644 schema/en/wegaSourcesTEI.rng diff --git a/schema/en/wegaSourcesTEI.rng b/schema/en/wegaSourcesTEI.rng new file mode 100644 index 0000000..e131200 --- /dev/null +++ b/schema/en/wegaSourcesTEI.rng @@ -0,0 +1,4326 @@ +<?xml version="1.0" encoding="UTF-8"?> +<grammar xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:tei="http://www.tei-c.org/ns/1.0" + xmlns:teix="http://www.tei-c.org/ns/Examples" + xmlns="http://relaxng.org/ns/structure/1.0" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" + ns="http://www.tei-c.org/ns/1.0"><!-- +Schema generated from ODD source 2024-11-12T22:14:37Z. . +TEI Edition: P5 Version 4.8.1. Last updated on 1st November 2024, revision 0a2bff95a +TEI Edition Location: https://www.tei-c.org/Vault/P5/4.8.1/ + +--><!--This work is licensed under a Creative Commons Attribution 3.0 Unported License (CC BY 3.0) .--> + <define name="macro.paraContent"> + <zeroOrMore> + <choice> + <text/> + <ref name="model.paraPart"/> + </choice> + </zeroOrMore> + </define> + <define name="macro.limitedContent"> + <zeroOrMore> + <choice> + <text/> + <ref name="model.limitedPhrase"/> + <ref name="model.inter"/> + </choice> + </zeroOrMore> + </define> + <define name="macro.phraseSeq"> + <zeroOrMore> + <choice> + <text/> + <ref name="model.gLike"/> + <ref name="model.attributable"/> + <ref name="model.phrase"/> + <ref name="model.global"/> + </choice> + </zeroOrMore> + </define> + <define name="macro.specialPara"> + <zeroOrMore> + <choice> + <text/> + <ref name="model.gLike"/> + <ref name="model.phrase"/> + <ref name="model.inter"/> + <ref name="model.divPart"/> + <ref name="model.global"/> + </choice> + </zeroOrMore> + </define> + <define name="att.anchoring.attributes"> + <ref name="att.anchoring.attribute.anchored"/> + <ref name="att.anchoring.attribute.targetEnd"/> + </define> + <define name="att.anchoring.attribute.anchored"> + <optional> + <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + name="anchored" + a:defaultValue="true"> + <a:documentation>(anchored) indicates whether the copy text shows the exact place of reference for the note.</a:documentation> + <data type="boolean"/> + </attribute> + </optional> + </define> + <define name="att.anchoring.attribute.targetEnd"> + <optional> + <attribute name="targetEnd"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(target end) points to the end of the span to which the note is attached, if the note is not embedded in the text at that point.</a:documentation> + <list> + <oneOrMore> + <data type="anyURI"> + <param name="pattern">\S+</param> + </data> + </oneOrMore> + </list> + </attribute> + </optional> + </define> + <define name="att.ascribed.attributes"> + <ref name="att.ascribed.attribute.who"/> + </define> + <define name="att.ascribed.attribute.who"> + <optional> + <attribute name="who"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the person, or group of people, to whom the element content is ascribed.</a:documentation> + <list> + <oneOrMore> + <data type="anyURI"> + <param name="pattern">\S+</param> + </data> + </oneOrMore> + </list> + </attribute> + </optional> + </define> + <define name="att.ascribed.directed.attributes"> + <ref name="att.ascribed.attributes"/> + <ref name="att.ascribed.directed.attribute.toWhom"/> + </define> + <define name="att.ascribed.directed.attribute.toWhom"> + <optional> + <attribute name="toWhom"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the person, or group of people, to whom a speech act or action is directed.</a:documentation> + <list> + <oneOrMore> + <data type="anyURI"> + <param name="pattern">\S+</param> + </data> + </oneOrMore> + </list> + </attribute> + </optional> + </define> + <define name="att.canonical.attributes"> + <ref name="att.canonical.attribute.key"/> + <ref name="att.canonical.attribute.ref"/> + </define> + <define name="att.canonical.attribute.key"> + <optional> + <attribute name="key"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides an externally-defined means of identifying the entity (or entities) being named, using a coded value of some kind.</a:documentation> + <data type="string"/> + </attribute> + </optional> + </define> + <define name="att.canonical.attribute.ref"> + <optional> + <attribute name="ref"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reference) provides an explicit means of locating a full definition or identity for the entity being named by means of one or more URIs.</a:documentation> + <list> + <oneOrMore> + <data type="anyURI"> + <param name="pattern">\S+</param> + </data> + </oneOrMore> + </list> + </attribute> + </optional> + </define> + <define name="att.ranging.attributes"> + <ref name="att.ranging.attribute.atLeast"/> + <ref name="att.ranging.attribute.atMost"/> + <ref name="att.ranging.attribute.min"/> + <ref name="att.ranging.attribute.max"/> + <ref name="att.ranging.attribute.confidence"/> + </define> + <define name="att.ranging.attribute.atLeast"> + <optional> + <attribute name="atLeast"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a minimum estimated value for the approximate measurement.</a:documentation> + <choice> + <data type="double"/> + <data type="token"> + <param name="pattern">(\-?[\d]+/\-?[\d]+)</param> + </data> + <data type="decimal"/> + </choice> + </attribute> + </optional> + </define> + <define name="att.ranging.attribute.atMost"> + <optional> + <attribute name="atMost"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a maximum estimated value for the approximate measurement.</a:documentation> + <choice> + <data type="double"/> + <data type="token"> + <param name="pattern">(\-?[\d]+/\-?[\d]+)</param> + </data> + <data type="decimal"/> + </choice> + </attribute> + </optional> + </define> + <define name="att.ranging.attribute.min"> + <optional> + <attribute name="min"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">where the measurement summarizes more than one observation or a range, supplies the minimum value observed.</a:documentation> + <choice> + <data type="double"/> + <data type="token"> + <param name="pattern">(\-?[\d]+/\-?[\d]+)</param> + </data> + <data type="decimal"/> + </choice> + </attribute> + </optional> + </define> + <define name="att.ranging.attribute.max"> + <optional> + <attribute name="max"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">where the measurement summarizes more than one observation or a range, supplies the maximum value observed.</a:documentation> + <choice> + <data type="double"/> + <data type="token"> + <param name="pattern">(\-?[\d]+/\-?[\d]+)</param> + </data> + <data type="decimal"/> + </choice> + </attribute> + </optional> + </define> + <define name="att.ranging.attribute.confidence"> + <optional> + <attribute name="confidence"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the degree of statistical confidence (between zero and one) that a value falls within the range specified by <code xmlns="http://www.w3.org/1999/xhtml" + xmlns:rng="http://relaxng.org/ns/structure/1.0">@min</code> and <code xmlns="http://www.w3.org/1999/xhtml" + xmlns:rng="http://relaxng.org/ns/structure/1.0">@max</code>, or the proportion of observed values that fall within that range.</a:documentation> + <data type="double"> + <param name="minInclusive">0</param> + <param name="maxInclusive">1</param> + </data> + </attribute> + </optional> + </define> + <define name="att.dimensions.attributes"> + <ref name="att.ranging.attributes"/> + <ref name="att.dimensions.attribute.unit"/> + <ref name="att.dimensions.attribute.quantity"/> + <ref name="att.dimensions.attribute.extent"/> + <ref name="att.dimensions.attribute.precision"/> + <ref name="att.dimensions.attribute.scope"/> + </define> + <define name="att.dimensions.attribute.unit"> + <optional> + <attribute name="unit"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">names the unit used for the measurement +Suggested values include: 1] cm (centimetres); 2] mm (millimetres); 3] in (inches); 4] line; 5] char (characters)</a:documentation> + <choice> + <value>cm</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(centimetres) </a:documentation> + <value>mm</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(millimetres) </a:documentation> + <value>in</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(inches) </a:documentation> + <value>line</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">lines of text</a:documentation> + <value>char</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(characters) characters of text</a:documentation> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </choice> + </attribute> + </optional> + </define> + <define name="att.dimensions.attribute.quantity"> + <optional> + <attribute name="quantity"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the length in the units specified</a:documentation> + <choice> + <data type="double"/> + <data type="token"> + <param name="pattern">(\-?[\d]+/\-?[\d]+)</param> + </data> + <data type="decimal"/> + </choice> + </attribute> + </optional> + </define> + <define name="att.dimensions.attribute.extent"> + <optional> + <attribute name="extent"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the size of the object concerned using a project-specific vocabulary combining quantity and units in a single string of words.</a:documentation> + <data type="string"/> + </attribute> + </optional> + </define> + <define name="att.dimensions.attribute.precision"> + <optional> + <attribute name="precision"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes the precision of the values specified by the other attributes.</a:documentation> + <choice> + <value>high</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + <value>medium</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + <value>low</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + <value>unknown</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + </choice> + </attribute> + </optional> + </define> + <define name="att.dimensions.attribute.scope"> + <optional> + <attribute name="scope"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">where the measurement summarizes more than one observation, specifies the applicability of this measurement. +Sample values include: 1] all; 2] most; 3] range</a:documentation> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </attribute> + </optional> + </define> + <define name="att.written.attributes"> + <ref name="att.written.attribute.hand"/> + </define> + <define name="att.written.attribute.hand"> + <optional> + <attribute name="hand"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the hand of the agent which made the intervention.</a:documentation> + <data type="anyURI"> + <param name="pattern">\S+</param> + </data> + </attribute> + </optional> + </define> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-att.written-hand-hand-reference-constraint-rule-1"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="tei:*[@hand]"> + <sch:assert test="id(substring(@hand,2)) or starts-with(@hand, 'wega:')">There must be an element with the xml:id = "<sch:value-of select="substring(@hand,2)"/>" which is the target of this @hand.</sch:assert> + </sch:rule> + </pattern> + <define name="att.breaking.attributes"> + <ref name="att.breaking.attribute.break"/> + </define> + <define name="att.breaking.attribute.break"> + <optional> + <attribute name="break"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates whether or not the element bearing this attribute should be considered to mark the end of an orthographic token in the same way as whitespace.</a:documentation> + <choice> + <value>no</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The element bearing this attribute is considered not to mark the end of any adjacent orthographic token.</a:documentation> + </choice> + </attribute> + </optional> + </define> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-att.breaking-break-hyphenation-whitespace-constraint-rule-2"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="tei:*[@break]"> + <sch:report test="matches((following-sibling::text() | following-sibling::element())[1], '^\s') or matches((preceding-sibling::text() | preceding-sibling::element())[last()], '\s$')">There must not be any whitespace before or after the <sch:name/> element when the @break attribute is applied.</sch:report> + </sch:rule> + </pattern> + <define name="att.cmc.attributes"> + <ref name="att.cmc.attribute.generatedBy"/> + </define> + <define name="att.cmc.attribute.generatedBy"> + <optional> + <attribute name="generatedBy"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(generated by) categorizes how the content of an element was generated in a CMC environment. +Suggested values include: 1] human; 2] template; 3] system; 4] bot; 5] unspecified</a:documentation> + <choice> + <value>human</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the content was naturally typed or spoken by a human user</a:documentation> + <value>template</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the content was generated after a human user activated a template for its insertion</a:documentation> + <value>system</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the content was generated by the system, i.e. the CMC environment</a:documentation> + <value>bot</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the content was generated by a bot, i.e. a non-human agent, typically one that is not part of the CMC environment itself</a:documentation> + <value>unspecified</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the content was generated by an unknown or unspecified process</a:documentation> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </choice> + </attribute> + </optional> + </define> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-att.cmc-generatedBy-CMC_generatedBy_within_post-constraint-rule-3"> + <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="tei:*[@generatedBy]"> + <sch:assert test="ancestor-or-self::tei:post">The @generatedBy attribute is for use within a <post> element.</sch:assert> + </sch:rule> + </pattern> + <define name="att.cReferencing.attributes"> + <ref name="att.cReferencing.attribute.cRef"/> + </define> + <define name="att.cReferencing.attribute.cRef"> + <optional> + <attribute name="cRef"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(canonical reference) specifies the destination of the pointer by supplying a canonical reference expressed using the scheme defined in a <code xmlns="http://www.w3.org/1999/xhtml" + xmlns:rng="http://relaxng.org/ns/structure/1.0"><refsDecl></code> element in the TEI header</a:documentation> + <data type="string"/> + </attribute> + </optional> + </define> + <define name="att.datable.w3c.attributes"> + <ref name="att.datable.w3c.attribute.when"/> + <ref name="att.datable.w3c.attribute.notBefore"/> + <ref name="att.datable.w3c.attribute.notAfter"/> + <ref name="att.datable.w3c.attribute.from"/> + <ref name="att.datable.w3c.attribute.to"/> + </define> + <define name="att.datable.w3c.attribute.when"> + <optional> + <attribute name="when"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies the value of the date or time in a standard form, e.g. yyyy-mm-dd.</a:documentation> + <choice> + <data type="date"/> + <data type="gYear"/> + </choice> + </attribute> + </optional> + </define> + <define name="att.datable.w3c.attribute.notBefore"> + <optional> + <attribute name="notBefore"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the earliest possible date for the event in standard form, e.g. yyyy-mm-dd.</a:documentation> + <choice> + <data type="date"/> + <data type="gYear"/> + </choice> + </attribute> + </optional> + </define> + <define name="att.datable.w3c.attribute.notAfter"> + <optional> + <attribute name="notAfter"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the latest possible date for the event in standard form, e.g. yyyy-mm-dd.</a:documentation> + <choice> + <data type="date"/> + <data type="gYear"/> + </choice> + </attribute> + </optional> + </define> + <define name="att.datable.w3c.attribute.from"> + <optional> + <attribute name="from"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the starting point of the period in standard form, e.g. yyyy-mm-dd.</a:documentation> + <choice> + <data type="date"/> + <data type="gYear"/> + </choice> + </attribute> + </optional> + </define> + <define name="att.datable.w3c.attribute.to"> + <optional> + <attribute name="to"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the ending point of the period in standard form, e.g. yyyy-mm-dd.</a:documentation> + <choice> + <data type="date"/> + <data type="gYear"/> + </choice> + </attribute> + </optional> + </define> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-att.datable.w3c-att-datable-w3c-when-constraint-rule-4"> + <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="tei:*[@when]"> + <sch:report test="@notBefore|@notAfter|@from|@to" role="nonfatal">The @when attribute cannot be used with any other att.datable.w3c attributes.</sch:report> + </sch:rule> + </pattern> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-att.datable.w3c-att-datable-w3c-from-constraint-rule-5"> + <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="tei:*[@from]"> + <sch:report test="@notBefore" role="nonfatal">The @from and @notBefore attributes cannot be used together.</sch:report> + </sch:rule> + </pattern> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-att.datable.w3c-att-datable-w3c-to-constraint-rule-6"> + <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="tei:*[@to]"> + <sch:report test="@notAfter" role="nonfatal">The @to and @notAfter attributes cannot be used together.</sch:report> + </sch:rule> + </pattern> + <define name="att.datable.attributes"> + <ref name="att.datable.w3c.attributes"/> + </define> + <define name="att.declarable.attributes"> + <ref name="att.declarable.attribute.default"/> + </define> + <define name="att.declarable.attribute.default"> + <optional> + <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + name="default" + a:defaultValue="false"> + <a:documentation>indicates whether or not this element is selected by default when its parent is selected.</a:documentation> + <choice> + <value>true</value> + <a:documentation>This element is selected if its parent is selected</a:documentation> + <value>false</value> + <a:documentation>This element can only be selected explicitly, unless it is the only one of its kind, in which case it is selected if its parent is selected.</a:documentation> + </choice> + </attribute> + </optional> + </define> + <define name="att.declaring.attributes"> + <ref name="att.declaring.attribute.decls"/> + </define> + <define name="att.declaring.attribute.decls"> + <optional> + <attribute name="decls"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies one or more declarable elements within the header, which are understood to apply to the element bearing this attribute and its content.</a:documentation> + <data type="anyURI"> + <param name="pattern">\S+</param> + </data> + </attribute> + </optional> + </define> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-att.declaring-decls-enforce-decls-on-every-child-constraint-rule-7"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="tei:*[*/@decls]"> + <sch:assert test="every $i in (* except tei:head|tei:pb|tei:cb|tei:lb) satisfies $i[@decls]">Every child element (except headings or milestone elements) should also bear the decls attribute.</sch:assert> + </sch:rule> + </pattern> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-att.declaring-decls-report-single-decls-constraint-rule-8"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="tei:*[*/@decls]"> + <sch:report test="count(*[@decls]) eq 1">The decls attribute must be applied to at least two elements.</sch:report> + </sch:rule> + </pattern> + <define name="att.fragmentable.attributes"> + <ref name="att.fragmentable.attribute.part"/> + </define> + <define name="att.fragmentable.attribute.part"> + <optional> + <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + name="part" + a:defaultValue="N"> + <a:documentation>specifies whether or not its parent element is fragmented in some way, typically by some other overlapping structure: for example a speech which is divided between two or more verse stanzas, a paragraph which is split across a page division, a verse line which is divided between two speakers.</a:documentation> + <choice> + <value>Y</value> + <a:documentation>(yes) the element is fragmented in some (unspecified) respect</a:documentation> + <value>N</value> + <a:documentation>(no) the element is not fragmented, or no claim is made as to its completeness</a:documentation> + <value>I</value> + <a:documentation>(initial) this is the initial part of a fragmented element</a:documentation> + <value>M</value> + <a:documentation>(medial) this is a medial part of a fragmented element</a:documentation> + <value>F</value> + <a:documentation>(final) this is the final part of a fragmented element</a:documentation> + </choice> + </attribute> + </optional> + </define> + <define name="att.divLike.attributes"> + <ref name="att.fragmentable.attributes"/> + <ref name="att.divLike.attribute.org"/> + <ref name="att.divLike.attribute.sample"/> + </define> + <define name="att.divLike.attribute.org"> + <optional> + <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + name="org" + a:defaultValue="uniform"> + <a:documentation>(organization) specifies how the content of the division is organized.</a:documentation> + <choice> + <value>composite</value> + <a:documentation>no claim is made about the sequence in which the immediate contents of this division are to be processed, or their inter-relationships.</a:documentation> + <value>uniform</value> + <a:documentation>the immediate contents of this element are regarded as forming a logical unit, to be processed in sequence.</a:documentation> + </choice> + </attribute> + </optional> + </define> + <define name="att.divLike.attribute.sample"> + <optional> + <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + name="sample" + a:defaultValue="complete"> + <a:documentation>indicates whether this division is a sample of the original source and if so, from which part.</a:documentation> + <choice> + <value>initial</value> + <a:documentation>division lacks material present at end in source.</a:documentation> + <value>medial</value> + <a:documentation>division lacks material at start and end.</a:documentation> + <value>final</value> + <a:documentation>division lacks material at start.</a:documentation> + <value>unknown</value> + <a:documentation>position of sampled material within original unknown.</a:documentation> + <value>complete</value> + <a:documentation>division is not a sample.</a:documentation> + </choice> + </attribute> + </optional> + </define> + <define name="att.docStatus.attributes"> + <ref name="att.docStatus.attribute.status"/> + </define> + <define name="att.docStatus.attribute.status"> + <optional> + <attribute name="status"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes the status of a document either currently or, when associated with a dated element, at the time indicated.</a:documentation> + <choice> + <value>proposed</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Category "red") bottom category, i.e. documents are still in a raw state.</a:documentation> + <value>candidate</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Category "yellow") middle category for documents that already have a certain distinction in their markup.</a:documentation> + <value>approved</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Category "green") approved documents that match the current requirements of markup and went through control and checking procedures.</a:documentation> + </choice> + </attribute> + </optional> + </define> + <define name="att.global.responsibility.attributes"> + <ref name="att.global.responsibility.attribute.cert"/> + <ref name="att.global.responsibility.attribute.resp"/> + </define> + <define name="att.global.responsibility.attribute.cert"> + <optional> + <attribute name="cert"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(certainty) signifies the degree of certainty associated with the intervention or interpretation.</a:documentation> + <choice> + <data type="double"> + <param name="minInclusive">0</param> + <param name="maxInclusive">1</param> + </data> + <choice> + <value>high</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + <value>medium</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + <value>low</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + <value>unknown</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + </choice> + </choice> + </attribute> + </optional> + </define> + <define name="att.global.responsibility.attribute.resp"> + <optional> + <attribute name="resp"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(responsible party) indicates the agency responsible for the intervention or interpretation, for example an editor or transcriber.</a:documentation> + <list> + <oneOrMore> + <data type="anyURI"> + <param name="pattern">\S+</param> + </data> + </oneOrMore> + </list> + </attribute> + </optional> + </define> + <define name="att.editLike.attributes"> + <ref name="att.editLike.attribute.evidence"/> + <ref name="att.editLike.attribute.instant"/> + </define> + <define name="att.editLike.attribute.evidence"> + <optional> + <attribute name="evidence"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the nature of the evidence supporting the reliability or accuracy of the intervention or interpretation. +Suggested values include: 1] internal; 2] external; 3] conjecture</a:documentation> + <list> + <oneOrMore> + <choice> + <value>internal</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">there is internal evidence to support the intervention.</a:documentation> + <value>external</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">there is external evidence to support the intervention.</a:documentation> + <value>conjecture</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the intervention or interpretation has been made by the editor, cataloguer, or scholar on the basis of their expertise.</a:documentation> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </choice> + </oneOrMore> + </list> + </attribute> + </optional> + </define> + <define name="att.editLike.attribute.instant"> + <optional> + <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + name="instant" + a:defaultValue="false"> + <a:documentation>indicates whether this is an instant revision or not.</a:documentation> + <choice> + <data type="boolean"/> + <choice> + <value>unknown</value> + <a:documentation/> + <value>inapplicable</value> + <a:documentation/> + </choice> + </choice> + </attribute> + </optional> + </define> + <define name="att.global.rendition.attributes"> + <ref name="att.global.rendition.attribute.rend"/> + </define> + <define name="att.global.rendition.attribute.rend"> + <optional> + <attribute name="rend"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(rendition) indicates how the element in question was rendered or presented in the source text.</a:documentation> + <list> + <oneOrMore> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </oneOrMore> + </list> + </attribute> + </optional> + </define> + <define name="att.global.source.attributes"> + <ref name="att.global.source.attribute.source"/> + </define> + <define name="att.global.source.attribute.source"> + <optional> + <attribute name="source"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the source from which some aspect of this element is drawn.</a:documentation> + <list> + <oneOrMore> + <data type="anyURI"> + <param name="pattern">\S+</param> + </data> + </oneOrMore> + </list> + </attribute> + </optional> + </define> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-att.global.source-source-only_1_ODD_source-constraint-rule-9"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="tei:*[@source]"> + <sch:let name="srcs" value="tokenize( normalize-space(@source),' ')"/> + <sch:report test="( self::tei:classRef | self::tei:dataRef | self::tei:elementRef | self::tei:macroRef | self::tei:moduleRef | self::tei:schemaSpec ) and $srcs[2]"> + When used on a schema description element (like + <sch:value-of select="name(.)"/>), the @source attribute + should have only 1 value. (This one has <sch:value-of select="count($srcs)"/>.) + </sch:report> + </sch:rule> + </pattern> + <define name="att.global.attributes"> + <ref name="att.global.rendition.attributes"/> + <ref name="att.global.responsibility.attributes"/> + <ref name="att.global.source.attributes"/> + <ref name="att.global.attribute.xmlid"/> + <ref name="att.global.attribute.n"/> + <ref name="att.global.attribute.xmllang"/> + </define> + <define name="att.global.attribute.xmlid"> + <optional> + <attribute name="xml:id"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(identifier) provides a unique identifier for the element bearing the attribute.</a:documentation> + <data type="ID"/> + </attribute> + </optional> + </define> + <define name="att.global.attribute.n"> + <optional> + <attribute name="n"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(number) gives a number (or other label) for an element, which is not necessarily unique within the document.</a:documentation> + <data type="string"/> + </attribute> + </optional> + </define> + <define name="att.global.attribute.xmllang"> + <optional> + <attribute name="xml:lang"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(language) indicates the language of the element content using a tag generated according to <a xmlns="http://www.w3.org/1999/xhtml" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">BCP 47</a>.</a:documentation> + <choice> + <data type="language"/> + <choice> + <value/> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + </choice> + </choice> + </attribute> + </optional> + </define> + <define name="att.internetMedia.attributes"> + <ref name="att.internetMedia.attribute.mimeType"/> + </define> + <define name="att.internetMedia.attribute.mimeType"> + <optional> + <attribute name="mimeType"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(MIME media type) specifies the applicable multimedia internet mail extension (MIME) media type</a:documentation> + <list> + <oneOrMore> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </oneOrMore> + </list> + </attribute> + </optional> + </define> + <define name="att.media.attributes"> + <ref name="att.internetMedia.attributes"/> + <ref name="att.media.attribute.width"/> + <ref name="att.media.attribute.height"/> + <ref name="att.media.attribute.scale"/> + </define> + <define name="att.media.attribute.width"> + <optional> + <attribute name="width"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Where the media are displayed, indicates the display width</a:documentation> + <data type="token"> + <param name="pattern">[\-+]?\d+(\.\d+)?(%|cm|mm|in|pt|pc|px|em|ex|ch|rem|vw|vh|vmin|vmax)</param> + </data> + </attribute> + </optional> + </define> + <define name="att.media.attribute.height"> + <optional> + <attribute name="height"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Where the media are displayed, indicates the display height</a:documentation> + <data type="token"> + <param name="pattern">[\-+]?\d+(\.\d+)?(%|cm|mm|in|pt|pc|px|em|ex|ch|rem|vw|vh|vmin|vmax)</param> + </data> + </attribute> + </optional> + </define> + <define name="att.media.attribute.scale"> + <optional> + <attribute name="scale"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Where the media are displayed, indicates a scale factor to be applied when generating the desired display size</a:documentation> + <choice> + <data type="double"/> + <data type="token"> + <param name="pattern">(\-?[\d]+/\-?[\d]+)</param> + </data> + <data type="decimal"/> + </choice> + </attribute> + </optional> + </define> + <define name="att.resourced.attributes"> + <ref name="att.resourced.attribute.url"/> + </define> + <define name="att.resourced.attribute.url"> + <attribute name="url"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(uniform resource locator) specifies the URL from which the media concerned may be obtained.</a:documentation> + <data type="anyURI"> + <param name="pattern">\S+</param> + </data> + </attribute> + </define> + <define name="att.naming.attributes"> + <ref name="att.canonical.attributes"/> + <ref name="att.naming.attribute.role"/> + </define> + <define name="att.naming.attribute.role"> + <optional> + <attribute name="role"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">may be used to specify further information about the entity referenced by this name in the form of a set of whitespace-separated values, for example the occupation of a person, or the status of a place.</a:documentation> + <list> + <oneOrMore> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </oneOrMore> + </list> + </attribute> + </optional> + </define> + <define name="att.notated.attributes"> + <ref name="att.notated.attribute.notation"/> + </define> + <define name="att.notated.attribute.notation"> + <optional> + <attribute name="notation"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">names the notation used for the content of the element.</a:documentation> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </attribute> + </optional> + </define> + <define name="att.placement.attributes"> + <ref name="att.placement.attribute.place"/> + </define> + <define name="att.placement.attribute.place"> + <optional> + <attribute name="place"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies where this item is placed. +Suggested values include: 1] top; 2] bottom; 3] margin; 4] opposite; 5] overleaf; 6] above; 7] right; 8] below; 9] left; 10] end; 11] inline; 12] inspace</a:documentation> + <list> + <oneOrMore> + <choice> + <value>top</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">at the top of the page</a:documentation> + <value>bottom</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">at the foot of the page</a:documentation> + <value>margin</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">in the margin (left, right, or both)</a:documentation> + <value>opposite</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">on the opposite, i.e. facing, page</a:documentation> + <value>overleaf</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">on the other side of the leaf</a:documentation> + <value>above</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">above the line</a:documentation> + <value>right</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">to the right, e.g. to the right of a vertical line of text, or to the right of a figure</a:documentation> + <value>below</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">below the line</a:documentation> + <value>left</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">to the left, e.g. to the left of a vertical line of text, or to the left of a figure</a:documentation> + <value>end</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">at the end of e.g. chapter or volume.</a:documentation> + <value>inline</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">within the body of the text.</a:documentation> + <value>inspace</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">in a predefined space, for example left by an earlier scribe.</a:documentation> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </choice> + </oneOrMore> + </list> + </attribute> + </optional> + </define> + <define name="att.typed.attributes"> + <ref name="att.typed.attribute.type"/> + <ref name="att.typed.attribute.subtype"/> + </define> + <define name="att.typed.attribute.type"> + <optional> + <attribute name="type"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes the element in some sense, using any convenient classification scheme or typology.</a:documentation> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </attribute> + </optional> + </define> + <define name="att.typed.attribute.subtype"> + <optional> + <attribute name="subtype"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(subtype) provides a sub-categorization of the element, if needed</a:documentation> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </attribute> + </optional> + </define> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-att.typed-subtypeTyped-constraint-rule-10"> + <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="tei:*[@subtype]"> + <sch:assert test="@type">The <sch:name/> element should not be categorized in detail with @subtype unless also categorized in general with @type</sch:assert> + </sch:rule> + </pattern> + <define name="att.pointing.attributes"> + <ref name="att.pointing.attribute.target"/> + </define> + <define name="att.pointing.attribute.target"> + <optional> + <attribute name="target"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the destination of the reference by supplying one or more URI References</a:documentation> + <list> + <oneOrMore> + <data type="anyURI"> + <param name="pattern">\S+</param> + </data> + </oneOrMore> + </list> + </attribute> + </optional> + </define> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-att.pointing-targetLang-constraint-rule-11"> + <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="tei:*[not(self::tei:schemaSpec)][@targetLang]"> + <sch:assert test="@target">@targetLang should only be used on <sch:name/> if @target is specified.</sch:assert> + </sch:rule> + </pattern> + <define name="att.spanning.attributes"> + <ref name="att.spanning.attribute.spanTo"/> + </define> + <define name="att.spanning.attribute.spanTo"> + <optional> + <attribute name="spanTo"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the end of a span initiated by the element bearing this attribute.</a:documentation> + <data type="anyURI"> + <param name="pattern">\S+</param> + </data> + </attribute> + </optional> + </define> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-12"> + <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="tei:*[@spanTo]"> + <sch:assert test="id(substring(@spanTo,2)) and following::*[@xml:id=substring(current()/@spanTo,2)]"> +The element indicated by @spanTo (<sch:value-of select="@spanTo"/>) must follow the current element <sch:name/> + </sch:assert> + </sch:rule> + </pattern> + <define name="model.nameLike.agent"> + <choice> + <ref name="name"/> + <ref name="orgName"/> + <ref name="persName"/> + <ref name="characterName"/> + </choice> + </define> + <define name="model.nameLike.agent_alternation"> + <choice> + <ref name="name"/> + <ref name="orgName"/> + <ref name="persName"/> + <ref name="characterName"/> + </choice> + </define> + <define name="model.nameLike.agent_sequence"> + <ref name="name"/> + <ref name="orgName"/> + <ref name="persName"/> + <ref name="characterName"/> + </define> + <define name="model.nameLike.agent_sequenceOptional"> + <optional> + <ref name="name"/> + </optional> + <optional> + <ref name="orgName"/> + </optional> + <optional> + <ref name="persName"/> + </optional> + <optional> + <ref name="characterName"/> + </optional> + </define> + <define name="model.nameLike.agent_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="name"/> + </zeroOrMore> + <zeroOrMore> + <ref name="orgName"/> + </zeroOrMore> + <zeroOrMore> + <ref name="persName"/> + </zeroOrMore> + <zeroOrMore> + <ref name="characterName"/> + </zeroOrMore> + </define> + <define name="model.nameLike.agent_sequenceRepeatable"> + <oneOrMore> + <ref name="name"/> + </oneOrMore> + <oneOrMore> + <ref name="orgName"/> + </oneOrMore> + <oneOrMore> + <ref name="persName"/> + </oneOrMore> + <oneOrMore> + <ref name="characterName"/> + </oneOrMore> + </define> + <define name="model.segLike"> + <notAllowed/> + </define> + <define name="model.segLike_alternation"> + <notAllowed/> + </define> + <define name="model.segLike_sequence"> + <empty/> + </define> + <define name="model.segLike_sequenceOptional"> + <empty/> + </define> + <define name="model.segLike_sequenceOptionalRepeatable"> + <empty/> + </define> + <define name="model.segLike_sequenceRepeatable"> + <notAllowed/> + </define> + <define name="model.hiLike"> + <choice> + <ref name="hi"/> + <ref name="q"/> + </choice> + </define> + <define name="model.hiLike_alternation"> + <choice> + <ref name="hi"/> + <ref name="q"/> + </choice> + </define> + <define name="model.hiLike_sequence"> + <ref name="hi"/> + <ref name="q"/> + </define> + <define name="model.hiLike_sequenceOptional"> + <optional> + <ref name="hi"/> + </optional> + <optional> + <ref name="q"/> + </optional> + </define> + <define name="model.hiLike_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="hi"/> + </zeroOrMore> + <zeroOrMore> + <ref name="q"/> + </zeroOrMore> + </define> + <define name="model.hiLike_sequenceRepeatable"> + <oneOrMore> + <ref name="hi"/> + </oneOrMore> + <oneOrMore> + <ref name="q"/> + </oneOrMore> + </define> + <define name="model.emphLike"> + <choice> + <ref name="mentioned"/> + <ref name="term"/> + <ref name="title"/> + </choice> + </define> + <define name="model.emphLike_alternation"> + <choice> + <ref name="mentioned"/> + <ref name="term"/> + <ref name="title"/> + </choice> + </define> + <define name="model.emphLike_sequence"> + <ref name="mentioned"/> + <ref name="term"/> + <ref name="title"/> + </define> + <define name="model.emphLike_sequenceOptional"> + <optional> + <ref name="mentioned"/> + </optional> + <optional> + <ref name="term"/> + </optional> + <optional> + <ref name="title"/> + </optional> + </define> + <define name="model.emphLike_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="mentioned"/> + </zeroOrMore> + <zeroOrMore> + <ref name="term"/> + </zeroOrMore> + <zeroOrMore> + <ref name="title"/> + </zeroOrMore> + </define> + <define name="model.emphLike_sequenceRepeatable"> + <oneOrMore> + <ref name="mentioned"/> + </oneOrMore> + <oneOrMore> + <ref name="term"/> + </oneOrMore> + <oneOrMore> + <ref name="title"/> + </oneOrMore> + </define> + <define name="model.highlighted"> + <choice> + <ref name="model.hiLike"/> + <ref name="model.emphLike"/> + </choice> + </define> + <define name="model.highlighted_alternation"> + <choice> + <ref name="model.hiLike_alternation"/> + <ref name="model.emphLike_alternation"/> + </choice> + </define> + <define name="model.highlighted_sequence"> + <ref name="model.hiLike_sequence"/> + <ref name="model.emphLike_sequence"/> + </define> + <define name="model.highlighted_sequenceOptional"> + <optional> + <ref name="model.hiLike_sequenceOptional"/> + </optional> + <optional> + <ref name="model.emphLike_sequenceOptional"/> + </optional> + </define> + <define name="model.highlighted_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="model.hiLike_sequenceOptionalRepeatable"/> + </zeroOrMore> + <zeroOrMore> + <ref name="model.emphLike_sequenceOptionalRepeatable"/> + </zeroOrMore> + </define> + <define name="model.highlighted_sequenceRepeatable"> + <oneOrMore> + <ref name="model.hiLike_sequenceRepeatable"/> + </oneOrMore> + <oneOrMore> + <ref name="model.emphLike_sequenceRepeatable"/> + </oneOrMore> + </define> + <define name="model.dateLike"> + <choice> + <ref name="date"/> + </choice> + </define> + <define name="model.dateLike_alternation"> + <choice> + <ref name="date"/> + </choice> + </define> + <define name="model.dateLike_sequence"> + <ref name="date"/> + </define> + <define name="model.dateLike_sequenceOptional"> + <optional> + <ref name="date"/> + </optional> + </define> + <define name="model.dateLike_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="date"/> + </zeroOrMore> + </define> + <define name="model.dateLike_sequenceRepeatable"> + <oneOrMore> + <ref name="date"/> + </oneOrMore> + </define> + <define name="model.measureLike"> + <notAllowed/> + </define> + <define name="model.measureLike_alternation"> + <notAllowed/> + </define> + <define name="model.measureLike_sequence"> + <empty/> + </define> + <define name="model.measureLike_sequenceOptional"> + <empty/> + </define> + <define name="model.measureLike_sequenceOptionalRepeatable"> + <empty/> + </define> + <define name="model.measureLike_sequenceRepeatable"> + <notAllowed/> + </define> + <define name="model.egLike"> + <notAllowed/> + </define> + <define name="model.egLike_alternation"> + <notAllowed/> + </define> + <define name="model.egLike_sequence"> + <empty/> + </define> + <define name="model.egLike_sequenceOptional"> + <empty/> + </define> + <define name="model.egLike_sequenceOptionalRepeatable"> + <empty/> + </define> + <define name="model.egLike_sequenceRepeatable"> + <notAllowed/> + </define> + <define name="model.graphicLike"> + <choice> + <ref name="graphic"/> + </choice> + </define> + <define name="model.graphicLike_alternation"> + <choice> + <ref name="graphic"/> + </choice> + </define> + <define name="model.graphicLike_sequence"> + <ref name="graphic"/> + </define> + <define name="model.graphicLike_sequenceOptional"> + <optional> + <ref name="graphic"/> + </optional> + </define> + <define name="model.graphicLike_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="graphic"/> + </zeroOrMore> + </define> + <define name="model.graphicLike_sequenceRepeatable"> + <oneOrMore> + <ref name="graphic"/> + </oneOrMore> + </define> + <define name="model.offsetLike"> + <notAllowed/> + </define> + <define name="model.offsetLike_alternation"> + <notAllowed/> + </define> + <define name="model.offsetLike_sequence"> + <empty/> + </define> + <define name="model.offsetLike_sequenceOptional"> + <empty/> + </define> + <define name="model.offsetLike_sequenceOptionalRepeatable"> + <empty/> + </define> + <define name="model.offsetLike_sequenceRepeatable"> + <notAllowed/> + </define> + <define name="model.pPart.msdesc"> + <notAllowed/> + </define> + <define name="model.pPart.msdesc_alternation"> + <notAllowed/> + </define> + <define name="model.pPart.msdesc_sequence"> + <empty/> + </define> + <define name="model.pPart.msdesc_sequenceOptional"> + <empty/> + </define> + <define name="model.pPart.msdesc_sequenceOptionalRepeatable"> + <empty/> + </define> + <define name="model.pPart.msdesc_sequenceRepeatable"> + <notAllowed/> + </define> + <define name="model.pPart.editorial"> + <notAllowed/> + </define> + <define name="model.pPart.editorial_alternation"> + <notAllowed/> + </define> + <define name="model.pPart.editorial_sequence"> + <empty/> + </define> + <define name="model.pPart.editorial_sequenceOptional"> + <empty/> + </define> + <define name="model.pPart.editorial_sequenceOptionalRepeatable"> + <empty/> + </define> + <define name="model.pPart.editorial_sequenceRepeatable"> + <notAllowed/> + </define> + <define name="model.pPart.transcriptional"> + <notAllowed/> + </define> + <define name="model.pPart.transcriptional_alternation"> + <notAllowed/> + </define> + <define name="model.pPart.transcriptional_sequence"> + <empty/> + </define> + <define name="model.pPart.transcriptional_sequenceOptional"> + <empty/> + </define> + <define name="model.pPart.transcriptional_sequenceOptionalRepeatable"> + <empty/> + </define> + <define name="model.pPart.transcriptional_sequenceRepeatable"> + <notAllowed/> + </define> + <define name="model.pPart.edit"> + <choice> + <ref name="model.pPart.editorial"/> + <ref name="model.pPart.transcriptional"/> + </choice> + </define> + <define name="model.pPart.edit_alternation"> + <choice> + <ref name="model.pPart.editorial_alternation"/> + <ref name="model.pPart.transcriptional_alternation"/> + </choice> + </define> + <define name="model.pPart.edit_sequence"> + <ref name="model.pPart.editorial_sequence"/> + <ref name="model.pPart.transcriptional_sequence"/> + </define> + <define name="model.pPart.edit_sequenceOptional"> + <optional> + <ref name="model.pPart.editorial_sequenceOptional"/> + </optional> + <optional> + <ref name="model.pPart.transcriptional_sequenceOptional"/> + </optional> + </define> + <define name="model.pPart.edit_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="model.pPart.editorial_sequenceOptionalRepeatable"/> + </zeroOrMore> + <zeroOrMore> + <ref name="model.pPart.transcriptional_sequenceOptionalRepeatable"/> + </zeroOrMore> + </define> + <define name="model.pPart.edit_sequenceRepeatable"> + <oneOrMore> + <ref name="model.pPart.editorial_sequenceRepeatable"/> + </oneOrMore> + <oneOrMore> + <ref name="model.pPart.transcriptional_sequenceRepeatable"/> + </oneOrMore> + </define> + <define name="model.ptrLike"> + <choice> + <ref name="ref"/> + </choice> + </define> + <define name="model.ptrLike_alternation"> + <choice> + <ref name="ref"/> + </choice> + </define> + <define name="model.ptrLike_sequence"> + <ref name="ref"/> + </define> + <define name="model.ptrLike_sequenceOptional"> + <optional> + <ref name="ref"/> + </optional> + </define> + <define name="model.ptrLike_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="ref"/> + </zeroOrMore> + </define> + <define name="model.ptrLike_sequenceRepeatable"> + <oneOrMore> + <ref name="ref"/> + </oneOrMore> + </define> + <define name="model.lPart"> + <notAllowed/> + </define> + <define name="model.lPart_alternation"> + <notAllowed/> + </define> + <define name="model.lPart_sequence"> + <empty/> + </define> + <define name="model.lPart_sequenceOptional"> + <empty/> + </define> + <define name="model.lPart_sequenceOptionalRepeatable"> + <empty/> + </define> + <define name="model.lPart_sequenceRepeatable"> + <notAllowed/> + </define> + <define name="model.global.meta"> + <notAllowed/> + </define> + <define name="model.global.meta_alternation"> + <notAllowed/> + </define> + <define name="model.global.meta_sequence"> + <empty/> + </define> + <define name="model.global.meta_sequenceOptional"> + <empty/> + </define> + <define name="model.global.meta_sequenceOptionalRepeatable"> + <empty/> + </define> + <define name="model.global.meta_sequenceRepeatable"> + <notAllowed/> + </define> + <define name="model.milestoneLike"> + <choice> + <ref name="lb"/> + </choice> + </define> + <define name="model.milestoneLike_alternation"> + <choice> + <ref name="lb"/> + </choice> + </define> + <define name="model.milestoneLike_sequence"> + <ref name="lb"/> + </define> + <define name="model.milestoneLike_sequenceOptional"> + <optional> + <ref name="lb"/> + </optional> + </define> + <define name="model.milestoneLike_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="lb"/> + </zeroOrMore> + </define> + <define name="model.milestoneLike_sequenceRepeatable"> + <oneOrMore> + <ref name="lb"/> + </oneOrMore> + </define> + <define name="model.gLike"> + <notAllowed/> + </define> + <define name="model.oddDecl"> + <notAllowed/> + </define> + <define name="model.oddDecl_alternation"> + <notAllowed/> + </define> + <define name="model.oddDecl_sequence"> + <empty/> + </define> + <define name="model.oddDecl_sequenceOptional"> + <empty/> + </define> + <define name="model.oddDecl_sequenceOptionalRepeatable"> + <empty/> + </define> + <define name="model.oddDecl_sequenceRepeatable"> + <notAllowed/> + </define> + <define name="model.phrase.xml"> + <notAllowed/> + </define> + <define name="model.phrase.xml_alternation"> + <notAllowed/> + </define> + <define name="model.phrase.xml_sequence"> + <empty/> + </define> + <define name="model.phrase.xml_sequenceOptional"> + <empty/> + </define> + <define name="model.phrase.xml_sequenceOptionalRepeatable"> + <empty/> + </define> + <define name="model.phrase.xml_sequenceRepeatable"> + <notAllowed/> + </define> + <define name="model.specDescLike"> + <notAllowed/> + </define> + <define name="model.specDescLike_alternation"> + <notAllowed/> + </define> + <define name="model.specDescLike_sequence"> + <empty/> + </define> + <define name="model.specDescLike_sequenceOptional"> + <empty/> + </define> + <define name="model.specDescLike_sequenceOptionalRepeatable"> + <empty/> + </define> + <define name="model.specDescLike_sequenceRepeatable"> + <notAllowed/> + </define> + <define name="model.biblLike"> + <choice> + <ref name="bibl"/> + <ref name="biblStruct"/> + </choice> + </define> + <define name="model.biblLike_alternation"> + <choice> + <ref name="bibl"/> + <ref name="biblStruct"/> + </choice> + </define> + <define name="model.biblLike_sequence"> + <ref name="bibl"/> + <ref name="biblStruct"/> + </define> + <define name="model.biblLike_sequenceOptional"> + <optional> + <ref name="bibl"/> + </optional> + <optional> + <ref name="biblStruct"/> + </optional> + </define> + <define name="model.biblLike_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="bibl"/> + </zeroOrMore> + <zeroOrMore> + <ref name="biblStruct"/> + </zeroOrMore> + </define> + <define name="model.biblLike_sequenceRepeatable"> + <oneOrMore> + <ref name="bibl"/> + </oneOrMore> + <oneOrMore> + <ref name="biblStruct"/> + </oneOrMore> + </define> + <define name="model.headLike"> + <choice> + <ref name="head"/> + </choice> + </define> + <define name="model.headLike_alternation"> + <choice> + <ref name="head"/> + </choice> + </define> + <define name="model.headLike_sequence"> + <ref name="head"/> + </define> + <define name="model.headLike_sequenceOptional"> + <optional> + <ref name="head"/> + </optional> + </define> + <define name="model.headLike_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="head"/> + </zeroOrMore> + </define> + <define name="model.headLike_sequenceRepeatable"> + <oneOrMore> + <ref name="head"/> + </oneOrMore> + </define> + <define name="model.labelLike"> + <choice> + <ref name="label"/> + </choice> + </define> + <define name="model.labelLike_alternation"> + <choice> + <ref name="label"/> + </choice> + </define> + <define name="model.labelLike_sequence"> + <ref name="label"/> + </define> + <define name="model.labelLike_sequenceOptional"> + <optional> + <ref name="label"/> + </optional> + </define> + <define name="model.labelLike_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="label"/> + </zeroOrMore> + </define> + <define name="model.labelLike_sequenceRepeatable"> + <oneOrMore> + <ref name="label"/> + </oneOrMore> + </define> + <define name="model.listLike"> + <choice> + <ref name="list"/> + <ref name="table"/> + </choice> + </define> + <define name="model.listLike_alternation"> + <choice> + <ref name="list"/> + <ref name="table"/> + </choice> + </define> + <define name="model.listLike_sequence"> + <ref name="list"/> + <ref name="table"/> + </define> + <define name="model.listLike_sequenceOptional"> + <optional> + <ref name="list"/> + </optional> + <optional> + <ref name="table"/> + </optional> + </define> + <define name="model.listLike_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="list"/> + </zeroOrMore> + <zeroOrMore> + <ref name="table"/> + </zeroOrMore> + </define> + <define name="model.listLike_sequenceRepeatable"> + <oneOrMore> + <ref name="list"/> + </oneOrMore> + <oneOrMore> + <ref name="table"/> + </oneOrMore> + </define> + <define name="model.noteLike"> + <choice> + <ref name="note"/> + <ref name="footNote"/> + </choice> + </define> + <define name="model.noteLike_alternation"> + <choice> + <ref name="note"/> + <ref name="footNote"/> + </choice> + </define> + <define name="model.noteLike_sequence"> + <ref name="note"/> + <ref name="footNote"/> + </define> + <define name="model.noteLike_sequenceOptional"> + <optional> + <ref name="note"/> + </optional> + <optional> + <ref name="footNote"/> + </optional> + </define> + <define name="model.noteLike_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="note"/> + </zeroOrMore> + <zeroOrMore> + <ref name="footNote"/> + </zeroOrMore> + </define> + <define name="model.noteLike_sequenceRepeatable"> + <oneOrMore> + <ref name="note"/> + </oneOrMore> + <oneOrMore> + <ref name="footNote"/> + </oneOrMore> + </define> + <define name="model.lLike"> + <notAllowed/> + </define> + <define name="model.lLike_alternation"> + <notAllowed/> + </define> + <define name="model.lLike_sequence"> + <empty/> + </define> + <define name="model.lLike_sequenceOptional"> + <empty/> + </define> + <define name="model.lLike_sequenceOptionalRepeatable"> + <empty/> + </define> + <define name="model.lLike_sequenceRepeatable"> + <notAllowed/> + </define> + <define name="model.pLike"> + <choice> + <ref name="p"/> + </choice> + </define> + <define name="model.pLike_alternation"> + <choice> + <ref name="p"/> + </choice> + </define> + <define name="model.pLike_sequence"> + <ref name="p"/> + </define> + <define name="model.pLike_sequenceOptional"> + <optional> + <ref name="p"/> + </optional> + </define> + <define name="model.pLike_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="p"/> + </zeroOrMore> + </define> + <define name="model.pLike_sequenceRepeatable"> + <oneOrMore> + <ref name="p"/> + </oneOrMore> + </define> + <define name="model.stageLike"> + <notAllowed/> + </define> + <define name="model.stageLike_alternation"> + <notAllowed/> + </define> + <define name="model.stageLike_sequence"> + <empty/> + </define> + <define name="model.stageLike_sequenceOptional"> + <empty/> + </define> + <define name="model.stageLike_sequenceOptionalRepeatable"> + <empty/> + </define> + <define name="model.stageLike_sequenceRepeatable"> + <notAllowed/> + </define> + <define name="model.global.edit"> + <notAllowed/> + </define> + <define name="model.global.edit_alternation"> + <notAllowed/> + </define> + <define name="model.global.edit_sequence"> + <empty/> + </define> + <define name="model.global.edit_sequenceOptional"> + <empty/> + </define> + <define name="model.global.edit_sequenceOptionalRepeatable"> + <empty/> + </define> + <define name="model.global.edit_sequenceRepeatable"> + <notAllowed/> + </define> + <define name="model.divPart"> + <choice> + <ref name="model.lLike"/> + <ref name="model.pLike"/> + </choice> + </define> + <define name="model.placeNamePart"> + <choice> + <ref name="placeName"/> + <ref name="country"/> + <ref name="settlement"/> + </choice> + </define> + <define name="model.placeNamePart_alternation"> + <choice> + <ref name="placeName"/> + <ref name="country"/> + <ref name="settlement"/> + </choice> + </define> + <define name="model.placeNamePart_sequence"> + <ref name="placeName"/> + <ref name="country"/> + <ref name="settlement"/> + </define> + <define name="model.placeNamePart_sequenceOptional"> + <optional> + <ref name="placeName"/> + </optional> + <optional> + <ref name="country"/> + </optional> + <optional> + <ref name="settlement"/> + </optional> + </define> + <define name="model.placeNamePart_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="placeName"/> + </zeroOrMore> + <zeroOrMore> + <ref name="country"/> + </zeroOrMore> + <zeroOrMore> + <ref name="settlement"/> + </zeroOrMore> + </define> + <define name="model.placeNamePart_sequenceRepeatable"> + <oneOrMore> + <ref name="placeName"/> + </oneOrMore> + <oneOrMore> + <ref name="country"/> + </oneOrMore> + <oneOrMore> + <ref name="settlement"/> + </oneOrMore> + </define> + <define name="model.placeStateLike"> + <choice> + <ref name="model.placeNamePart"/> + </choice> + </define> + <define name="model.placeStateLike_alternation"> + <choice> + <ref name="model.placeNamePart_alternation"/> + </choice> + </define> + <define name="model.placeStateLike_sequence"> + <ref name="model.placeNamePart_sequence"/> + </define> + <define name="model.placeStateLike_sequenceOptional"> + <optional> + <ref name="model.placeNamePart_sequenceOptional"/> + </optional> + </define> + <define name="model.placeStateLike_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="model.placeNamePart_sequenceOptionalRepeatable"/> + </zeroOrMore> + </define> + <define name="model.placeStateLike_sequenceRepeatable"> + <oneOrMore> + <ref name="model.placeNamePart_sequenceRepeatable"/> + </oneOrMore> + </define> + <define name="model.descLike"> + <notAllowed/> + </define> + <define name="model.quoteLike"> + <choice> + <ref name="quote"/> + </choice> + </define> + <define name="model.quoteLike_alternation"> + <choice> + <ref name="quote"/> + </choice> + </define> + <define name="model.quoteLike_sequence"> + <ref name="quote"/> + </define> + <define name="model.quoteLike_sequenceOptional"> + <optional> + <ref name="quote"/> + </optional> + </define> + <define name="model.quoteLike_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="quote"/> + </zeroOrMore> + </define> + <define name="model.quoteLike_sequenceRepeatable"> + <oneOrMore> + <ref name="quote"/> + </oneOrMore> + </define> + <define name="model.attributable"> + <choice> + <ref name="model.quoteLike"/> + </choice> + </define> + <define name="model.attributable_alternation"> + <choice> + <ref name="model.quoteLike_alternation"/> + </choice> + </define> + <define name="model.attributable_sequence"> + <ref name="model.quoteLike_sequence"/> + </define> + <define name="model.attributable_sequenceOptional"> + <optional> + <ref name="model.quoteLike_sequenceOptional"/> + </optional> + </define> + <define name="model.attributable_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="model.quoteLike_sequenceOptionalRepeatable"/> + </zeroOrMore> + </define> + <define name="model.attributable_sequenceRepeatable"> + <oneOrMore> + <ref name="model.quoteLike_sequenceRepeatable"/> + </oneOrMore> + </define> + <define name="model.respLike"> + <choice> + <ref name="author"/> + <ref name="editor"/> + </choice> + </define> + <define name="model.divWrapper"> + <notAllowed/> + </define> + <define name="model.divTopPart"> + <choice> + <ref name="model.headLike"/> + </choice> + </define> + <define name="model.divTop"> + <choice> + <ref name="model.divWrapper"/> + <ref name="model.divTopPart"/> + </choice> + </define> + <define name="model.frontPart.drama"> + <notAllowed/> + </define> + <define name="model.pLike.front"> + <choice> + <ref name="head"/> + <ref name="titlePart"/> + </choice> + </define> + <define name="model.divBottomPart"> + <notAllowed/> + </define> + <define name="model.divBottom"> + <choice> + <ref name="model.divWrapper"/> + <ref name="model.divBottomPart"/> + </choice> + </define> + <define name="model.titlepagePart"> + <choice> + <ref name="graphic"/> + <ref name="titlePart"/> + </choice> + </define> + <define name="model.imprintPart"> + <choice> + <ref name="publisher"/> + <ref name="pubPlace"/> + </choice> + </define> + <define name="model.addressLike"> + <choice> + <ref name="address"/> + </choice> + </define> + <define name="model.addressLike_alternation"> + <choice> + <ref name="address"/> + </choice> + </define> + <define name="model.addressLike_sequence"> + <ref name="address"/> + </define> + <define name="model.addressLike_sequenceOptional"> + <optional> + <ref name="address"/> + </optional> + </define> + <define name="model.addressLike_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="address"/> + </zeroOrMore> + </define> + <define name="model.addressLike_sequenceRepeatable"> + <oneOrMore> + <ref name="address"/> + </oneOrMore> + </define> + <define name="model.nameLike"> + <choice> + <ref name="model.nameLike.agent"/> + <ref name="model.offsetLike"/> + <ref name="model.placeStateLike"/> + <ref name="rs"/> + <ref name="model.persNamePart"/> + <ref name="workName"/> + </choice> + </define> + <define name="model.nameLike_alternation"> + <choice> + <ref name="model.nameLike.agent_alternation"/> + <ref name="model.offsetLike_alternation"/> + <ref name="model.placeStateLike_alternation"/> + <ref name="rs"/> + <ref name="model.persNamePart_alternation"/> + <ref name="workName"/> + </choice> + </define> + <define name="model.nameLike_sequence"> + <ref name="model.nameLike.agent_sequence"/> + <ref name="model.offsetLike_sequence"/> + <ref name="model.placeStateLike_sequence"/> + <ref name="rs"/> + <ref name="model.persNamePart_sequence"/> + <ref name="workName"/> + </define> + <define name="model.nameLike_sequenceOptional"> + <optional> + <ref name="model.nameLike.agent_sequenceOptional"/> + </optional> + <optional> + <ref name="model.offsetLike_sequenceOptional"/> + </optional> + <optional> + <ref name="model.placeStateLike_sequenceOptional"/> + </optional> + <optional> + <ref name="rs"/> + </optional> + <optional> + <ref name="model.persNamePart_sequenceOptional"/> + </optional> + <optional> + <ref name="workName"/> + </optional> + </define> + <define name="model.nameLike_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="model.nameLike.agent_sequenceOptionalRepeatable"/> + </zeroOrMore> + <zeroOrMore> + <ref name="model.offsetLike_sequenceOptionalRepeatable"/> + </zeroOrMore> + <zeroOrMore> + <ref name="model.placeStateLike_sequenceOptionalRepeatable"/> + </zeroOrMore> + <zeroOrMore> + <ref name="rs"/> + </zeroOrMore> + <zeroOrMore> + <ref name="model.persNamePart_sequenceOptionalRepeatable"/> + </zeroOrMore> + <zeroOrMore> + <ref name="workName"/> + </zeroOrMore> + </define> + <define name="model.nameLike_sequenceRepeatable"> + <oneOrMore> + <ref name="model.nameLike.agent_sequenceRepeatable"/> + </oneOrMore> + <oneOrMore> + <ref name="model.offsetLike_sequenceRepeatable"/> + </oneOrMore> + <oneOrMore> + <ref name="model.placeStateLike_sequenceRepeatable"/> + </oneOrMore> + <oneOrMore> + <ref name="rs"/> + </oneOrMore> + <oneOrMore> + <ref name="model.persNamePart_sequenceRepeatable"/> + </oneOrMore> + <oneOrMore> + <ref name="workName"/> + </oneOrMore> + </define> + <define name="model.global"> + <choice> + <ref name="model.global.meta"/> + <ref name="model.milestoneLike"/> + <ref name="model.noteLike"/> + <ref name="model.global.edit"/> + <ref name="figure"/> + </choice> + </define> + <define name="model.biblPart"> + <choice> + <ref name="model.respLike"/> + <ref name="model.imprintPart"/> + <ref name="quote"/> + <ref name="bibl"/> + <ref name="relatedItem"/> + <ref name="availability"/> + </choice> + </define> + <define name="model.frontPart"> + <choice> + <ref name="model.frontPart.drama"/> + <ref name="divGen"/> + <ref name="titlePage"/> + </choice> + </define> + <define name="model.addrPart"> + <choice> + <ref name="model.nameLike"/> + <ref name="street"/> + <ref name="postCode"/> + </choice> + </define> + <define name="model.pPart.data"> + <choice> + <ref name="model.dateLike"/> + <ref name="model.measureLike"/> + <ref name="model.addressLike"/> + <ref name="model.nameLike"/> + </choice> + </define> + <define name="model.pPart.data_alternation"> + <choice> + <ref name="model.dateLike_alternation"/> + <ref name="model.measureLike_alternation"/> + <ref name="model.addressLike_alternation"/> + <ref name="model.nameLike_alternation"/> + </choice> + </define> + <define name="model.pPart.data_sequence"> + <ref name="model.dateLike_sequence"/> + <ref name="model.measureLike_sequence"/> + <ref name="model.addressLike_sequence"/> + <ref name="model.nameLike_sequence"/> + </define> + <define name="model.pPart.data_sequenceOptional"> + <optional> + <ref name="model.dateLike_sequenceOptional"/> + </optional> + <optional> + <ref name="model.measureLike_sequenceOptional"/> + </optional> + <optional> + <ref name="model.addressLike_sequenceOptional"/> + </optional> + <optional> + <ref name="model.nameLike_sequenceOptional"/> + </optional> + </define> + <define name="model.pPart.data_sequenceOptionalRepeatable"> + <zeroOrMore> + <ref name="model.dateLike_sequenceOptionalRepeatable"/> + </zeroOrMore> + <zeroOrMore> + <ref name="model.measureLike_sequenceOptionalRepeatable"/> + </zeroOrMore> + <zeroOrMore> + <ref name="model.addressLike_sequenceOptionalRepeatable"/> + </zeroOrMore> + <zeroOrMore> + <ref name="model.nameLike_sequenceOptionalRepeatable"/> + </zeroOrMore> + </define> + <define name="model.pPart.data_sequenceRepeatable"> + <oneOrMore> + <ref name="model.dateLike_sequenceRepeatable"/> + </oneOrMore> + <oneOrMore> + <ref name="model.measureLike_sequenceRepeatable"/> + </oneOrMore> + <oneOrMore> + <ref name="model.addressLike_sequenceRepeatable"/> + </oneOrMore> + <oneOrMore> + <ref name="model.nameLike_sequenceRepeatable"/> + </oneOrMore> + </define> + <define name="model.inter"> + <choice> + <ref name="model.egLike"/> + <ref name="model.oddDecl"/> + <ref name="model.biblLike"/> + <ref name="model.labelLike"/> + <ref name="model.listLike"/> + <ref name="model.stageLike"/> + <ref name="model.attributable"/> + </choice> + </define> + <define name="model.cmc"> + <notAllowed/> + </define> + <define name="model.common"> + <choice> + <ref name="model.divPart"/> + <ref name="model.inter"/> + <ref name="model.cmc"/> + <ref name="q"/> + </choice> + </define> + <define name="model.phrase"> + <choice> + <ref name="model.segLike"/> + <ref name="model.highlighted"/> + <ref name="model.graphicLike"/> + <ref name="model.pPart.msdesc"/> + <ref name="model.pPart.edit"/> + <ref name="model.ptrLike"/> + <ref name="model.lPart"/> + <ref name="model.phrase.xml"/> + <ref name="model.specDescLike"/> + <ref name="model.pPart.data"/> + </choice> + </define> + <define name="model.paraPart"> + <choice> + <ref name="model.gLike"/> + <ref name="model.lLike"/> + <ref name="model.global"/> + <ref name="model.inter"/> + <ref name="model.phrase"/> + </choice> + </define> + <define name="model.limitedPhrase"> + <choice> + <ref name="model.hiLike"/> + <ref name="model.emphLike"/> + <ref name="model.pPart.msdesc"/> + <ref name="model.pPart.editorial"/> + <ref name="model.ptrLike"/> + <ref name="model.phrase.xml"/> + <ref name="model.pPart.data"/> + </choice> + </define> + <define name="model.divLike"> + <choice> + <ref name="div"/> + </choice> + </define> + <define name="model.divGenLike"> + <choice> + <ref name="divGen"/> + </choice> + </define> + <define name="model.div1Like"> + <notAllowed/> + </define> + <define name="model.teiHeaderPart"> + <choice> + <ref name="profileDesc"/> + </choice> + </define> + <define name="model.resource"> + <choice> + <ref name="text"/> + </choice> + </define> + <define name="att.personal.attributes"> + <ref name="att.naming.attributes"/> + <ref name="att.personal.attribute.full"/> + <ref name="att.personal.attribute.sort"/> + </define> + <define name="att.personal.attribute.full"> + <optional> + <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + name="full" + a:defaultValue="yes"> + <a:documentation>indicates whether the name component is given in full, as an abbreviation or simply as an initial.</a:documentation> + <choice> + <value>yes</value> + <a:documentation>(yes) the name component is spelled out in full.</a:documentation> + <value>abb</value> + <a:documentation>(abbreviated) the name component is given in an abbreviated form.</a:documentation> + <value>init</value> + <a:documentation>(initial letter) the name component is indicated only by one initial.</a:documentation> + </choice> + </attribute> + </optional> + </define> + <define name="att.personal.attribute.sort"> + <optional> + <attribute name="sort"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(sort) specifies the sort order of the name component in relation to others within the name.</a:documentation> + <data type="nonNegativeInteger"/> + </attribute> + </optional> + </define> + <define name="att.calendarSystem.attributes"> + <ref name="att.calendarSystem.attribute.calendar"/> + </define> + <define name="att.calendarSystem.attribute.calendar"> + <optional> + <attribute name="calendar"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the system or calendar to which the date represented by the content of this element belongs.</a:documentation> + <choice> + <value>Julian</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Identifies the selected date as specified according to the Julian calendar. The normalized value in <code xmlns="http://www.w3.org/1999/xhtml" + xmlns:rng="http://relaxng.org/ns/structure/1.0">@when</code> has to be specified after the standard, ergo the Gregorian calendar.</a:documentation> + </choice> + </attribute> + </optional> + </define> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-att.calendarSystem-calendar_attr_on_empty_element-constraint-rule-13"> + <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="tei:*[@calendar]"> + <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more + systems or calendars to which the date represented by the content of this element belongs, + but this <sch:name/> element has no textual content.</sch:assert> + </sch:rule> + </pattern> + <define name="p"> + <element name="p"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(paragraph) marks paragraphs in prose. [3.1. Paragraphs 7.2.5. Speech Contents]</a:documentation> + <ref name="macro.paraContent"/> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-p-abstractModel-structure-p-in-ab-or-p-constraint-rule-14"> + <sch:rule xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:p"> + <sch:report test="(ancestor::tei:ab or ancestor::tei:p) and not( ancestor::tei:floatingText | parent::tei:exemplum | parent::tei:item | parent::tei:note | parent::tei:q | parent::tei:quote | parent::tei:remarks | parent::tei:said | parent::tei:sp | parent::tei:stage | parent::tei:cell | parent::tei:figure )"> + Abstract model violation: Paragraphs may not occur inside other paragraphs or ab elements. + </sch:report> + </sch:rule> + </pattern> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-p-abstractModel-structure-p-in-l-or-lg-constraint-rule-15"> + <sch:rule xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:p"> + <sch:report test="( ancestor::tei:l or ancestor::tei:lg ) and not( ancestor::tei:floatingText | parent::tei:figure | parent::tei:note )"> + Abstract model violation: Lines may not contain higher-level structural elements such as div, p, or ab, unless p is a child of figure or note, or is a descendant of floatingText. + </sch:report> + </sch:rule> + </pattern> + <ref name="att.global.attributes"/> + <ref name="att.declaring.attributes"/> + <ref name="att.fragmentable.attributes"/> + <ref name="att.written.attributes"/> + <ref name="att.cmc.attributes"/> + <empty/> + </element> + </define> + <define name="hi"> + <element name="hi"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(highlighted) marks a word or phrase as graphically distinct from the surrounding text, for reasons concerning which no claim is made. [3.3.2.2. Emphatic Words and Phrases 3.3.2. Emphasis, Foreign Words, and Unusual Language]</a:documentation> + <ref name="macro.paraContent"/> + <ref name="att.global.attributes"/> + <ref name="att.written.attributes"/> + <ref name="att.cmc.attributes"/> + <empty/> + </element> + </define> + <define name="quote"> + <element name="quote"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(quotation) contains a phrase or passage attributed by the narrator or author to some agency external to the text. [3.3.3. Quotation 4.3.1. Grouped Texts]</a:documentation> + <ref name="macro.specialPara"/> + <ref name="att.global.attributes"/> + <ref name="att.typed.attributes"/> + <ref name="att.notated.attributes"/> + <ref name="att.cmc.attributes"/> + <empty/> + </element> + </define> + <define name="q"> + <element name="q"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(quoted) contains material which is distinguished from the surrounding text using quotation marks or a similar method, for any one of a variety of reasons including, but not limited to: direct speech or thought, technical terms or jargon, authorial distance, quotations from elsewhere, and passages that are mentioned but not used. [3.3.3. Quotation]</a:documentation> + <ref name="macro.specialPara"/> + <ref name="att.global.attributes"/> + <ref name="att.ascribed.directed.attributes"/> + <ref name="att.cmc.attributes"/> + <optional> + <attribute name="type"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(type) may be used to indicate whether the offset passage is spoken or thought, or to characterize it more finely. +Suggested values include: 1] spoken (spoken); 2] thought (thought); 3] written (written); 4] soCalled (so called); 5] foreign (foreign); 6] distinct (distinct); 7] term; 8] emph (emph); 9] mentioned (mentioned)</a:documentation> + <choice> + <value>spoken</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(spoken) representation of speech</a:documentation> + <value>thought</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(thought) representation of thought, e.g. internal monologue</a:documentation> + <value>written</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(written) quotation from a written source</a:documentation> + <value>soCalled</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(so called) authorial distance</a:documentation> + <value>foreign</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(foreign) foreign words</a:documentation> + <value>distinct</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(distinct) linguistically distinct</a:documentation> + <value>term</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">technical term</a:documentation> + <value>emph</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(emph) rhetorically emphasized</a:documentation> + <value>mentioned</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(mentioned) refering to itself, not its normal referent</a:documentation> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </choice> + </attribute> + </optional> + <empty/> + </element> + </define> + <define name="mentioned"> + <element name="mentioned"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">marks words or phrases mentioned, not used. [3.3.3. Quotation]</a:documentation> + <ref name="macro.phraseSeq"/> + <ref name="att.global.attributes"/> + <ref name="att.cmc.attributes"/> + <empty/> + </element> + </define> + <define name="term"> + <element name="term"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(term) contains a single-word, multi-word, or symbolic designation which is regarded as a technical term. [3.4.1. Terms and Glosses]</a:documentation> + <ref name="macro.phraseSeq"/> + <ref name="att.cmc.attributes"/> + <empty/> + </element> + </define> + <define name="name"> + <element name="name"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(name, proper noun) contains a proper noun or noun phrase. [3.6.1. Referring Strings]</a:documentation> + <ref name="macro.phraseSeq"/> + <ref name="att.global.attributes"/> + <ref name="att.personal.attributes"/> + <ref name="att.datable.attributes"/> + <ref name="att.editLike.attributes"/> + <ref name="att.typed.attributes"/> + <ref name="att.cmc.attributes"/> + <optional> + <attribute name="calendar"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates one or more systems or calendars to which the date represented by the content of this element belongs.</a:documentation> + <list> + <oneOrMore> + <data type="anyURI"> + <param name="pattern">\S+</param> + </data> + </oneOrMore> + </list> + </attribute> + </optional> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-name-calendar-calendar-check-name-constraint-rule-16"> + <sch:rule xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:*[@calendar]"> + <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more + systems or calendars to which the date represented by the content of this element belongs, + but this <sch:name/> element has no textual content.</sch:assert> + </sch:rule> + </pattern> + <empty/> + </element> + </define> + <define name="rs"> + <element name="rs"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(referencing string) contains a general purpose name or referring string. [14.2.1. Personal Names 3.6.1. Referring Strings]</a:documentation> + <ref name="macro.phraseSeq"/> + <ref name="att.global.attributes"/> + <ref name="att.naming.attributes"/> + <ref name="att.typed.attributes"/> + <ref name="att.cmc.attributes"/> + <empty/> + </element> + </define> + <define name="address"> + <element name="address"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(address) contains a postal address, for example of a publisher, an organization, or an individual. [3.6.2. Addresses 2.2.4. Publication, Distribution, Licensing, etc. 3.12.2.4. Imprint, Size of a Document, and Reprint Information]</a:documentation> + <group> + <zeroOrMore> + <ref name="model.global"/> + </zeroOrMore> + <oneOrMore> + <ref name="model.addrPart"/> + <zeroOrMore> + <ref name="model.global"/> + </zeroOrMore> + </oneOrMore> + </group> + <ref name="att.global.attributes"/> + <ref name="att.cmc.attributes"/> + <empty/> + </element> + </define> + <define name="street"> + <element name="street"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a full street address including any name or number identifying a building as well as the name of the street or route on which it is located. [3.6.2. Addresses]</a:documentation> + <ref name="macro.phraseSeq"/> + <ref name="att.global.attributes"/> + <empty/> + </element> + </define> + <define name="postCode"> + <element name="postCode"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(postal code) contains a numerical or alphanumeric code used as part of a postal address to simplify sorting or delivery of mail. [3.6.2. Addresses]</a:documentation> + <text/> + <ref name="att.global.attributes"/> + <empty/> + </element> + </define> + <define name="date"> + <element name="date"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(date) contains a date in any format. [3.6.4. Dates and Times 2.2.4. Publication, Distribution, Licensing, etc. 2.6. The Revision Description 3.12.2.4. Imprint, Size of a Document, and Reprint Information 16.2.3. The Setting Description 14.4. Dates]</a:documentation> + <zeroOrMore> + <choice> + <text/> + <ref name="model.gLike"/> + <ref name="model.phrase"/> + <ref name="model.global"/> + </choice> + </zeroOrMore> + <ref name="att.global.attributes"/> + <ref name="att.canonical.attributes"/> + <ref name="att.datable.attributes"/> + <ref name="att.calendarSystem.attributes"/> + <ref name="att.editLike.attributes"/> + <ref name="att.dimensions.attributes"/> + <ref name="att.typed.attributes"/> + <ref name="att.cmc.attributes"/> + <empty/> + </element> + </define> + <define name="ref"> + <element name="ref"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reference) defines a reference to another location, possibly modified by additional text or comment. [3.7. Simple Links and Cross-References 17.1. Links]</a:documentation> + <ref name="macro.paraContent"/> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-ref-refAtts-constraint-rule-17"> + <sch:rule xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:ref"> + <sch:report test="@target and @cRef">Only one of the attributes @target' and @cRef' may be supplied on <sch:name/> + </sch:report> + </sch:rule> + </pattern> + <ref name="att.cReferencing.attributes"/> + <ref name="att.declaring.attributes"/> + <ref name="att.global.attributes"/> + <ref name="att.internetMedia.attributes"/> + <ref name="att.pointing.attributes"/> + <ref name="att.typed.attributes"/> + <ref name="att.cmc.attributes"/> + <empty/> + </element> + </define> + <define name="list"> + <element name="list"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(list) contains any sequence of items organized as a list. [3.8. Lists]</a:documentation> + <group> + <zeroOrMore> + <choice> + + <ref name="model.divTop"/> + <ref name="model.global"/> + + </choice> + </zeroOrMore> + <choice> + <oneOrMore> + <ref name="item"/> + <zeroOrMore> + <ref name="model.global"/> + </zeroOrMore> + </oneOrMore> + <group> + <oneOrMore> + <ref name="label"/> + <zeroOrMore> + <ref name="model.global"/> + </zeroOrMore> + <ref name="item"/> + <zeroOrMore> + <ref name="model.global"/> + </zeroOrMore> + </oneOrMore> + </group> + </choice> + <zeroOrMore> + <ref name="model.divBottom"/> + <zeroOrMore> + <ref name="model.global"/> + </zeroOrMore> + </zeroOrMore> + </group> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-list-gloss-list-must-have-labels-constraint-rule-18"> + <sch:rule xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:list[@type='gloss']"> + <sch:assert test="tei:label">The content of a "gloss" list should include a sequence of one or more pairs of a label element followed by an item element</sch:assert> + </sch:rule> + </pattern> + <ref name="att.global.attributes"/> + <ref name="att.typed.attribute.subtype"/> + <ref name="att.cmc.attributes"/> + <optional> + <attribute name="type"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(type) describes the nature of the items in the list. +Suggested values include: 1] gloss (gloss); 2] index (index); 3] instructions (instructions); 4] litany (litany); 5] syllogism (syllogism)</a:documentation> + <choice> + <value>gloss</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(gloss) each list item glosses some term or concept, which is given by a <code xmlns="http://www.w3.org/1999/xhtml" + xmlns:rng="http://relaxng.org/ns/structure/1.0"><label></code> element preceding the list item.</a:documentation> + <value>index</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(index) each list item is an entry in an index such as the alphabetical topical index at the back of a print volume.</a:documentation> + <value>instructions</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(instructions) each list item is a step in a sequence of instructions, as in a recipe.</a:documentation> + <value>litany</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(litany) each list item is one of a sequence of petitions, supplications or invocations, typically in a religious ritual.</a:documentation> + <value>syllogism</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(syllogism) each list item is part of an argument consisting of two or more propositions and a final conclusion derived from them.</a:documentation> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </choice> + </attribute> + </optional> + <empty/> + </element> + </define> + <define name="item"> + <element name="item"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(item) contains one component of a list. [3.8. Lists 2.6. The Revision Description]</a:documentation> + <ref name="macro.specialPara"/> + <ref name="att.global.attributes"/> + <empty/> + </element> + </define> + <define name="label"> + <element name="label"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(label) contains any label or heading used to identify part of a text, typically but not exclusively in a list or glossary. [3.8. Lists]</a:documentation> + <ref name="macro.phraseSeq"/> + <ref name="att.global.attributes"/> + <ref name="att.typed.attributes"/> + <ref name="att.placement.attributes"/> + <ref name="att.written.attributes"/> + <ref name="att.cmc.attributes"/> + <empty/> + </element> + </define> + <define name="head"> + <element name="head"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(heading) contains any type of heading, for example the title of a section, or the heading of a list, glossary, manuscript description, etc. [4.2.1. Headings and Trailers]</a:documentation> + <zeroOrMore> + <choice> + <text/> + + <ref name="model.gLike"/> + <ref name="model.phrase"/> + <ref name="model.inter"/> + <ref name="model.lLike"/> + <ref name="model.global"/> + </choice> + </zeroOrMore> + <ref name="att.global.attributes"/> + <ref name="att.typed.attributes"/> + <ref name="att.placement.attributes"/> + <ref name="att.written.attributes"/> + <ref name="att.cmc.attributes"/> + <empty/> + </element> + </define> + <define name="note"> + <element name="note"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(note) contains a note or annotation. [3.9.1. Notes and Simple Annotation 2.2.6. The Notes Statement 3.12.2.8. Notes and Statement of Language 10.3.5.4. Notes within Entries]</a:documentation> + <ref name="macro.specialPara"/> + <ref name="att.global.attributes"/> + <ref name="att.placement.attributes"/> + <ref name="att.pointing.attributes"/> + <ref name="att.typed.attribute.subtype"/> + <ref name="att.written.attributes"/> + <ref name="att.anchoring.attributes"/> + <ref name="att.cmc.attributes"/> + <optional> + <attribute name="type"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes the element in some sense, using any convenient classification scheme or typology.</a:documentation> + <choice> + <value>Kurzbeschreibung</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + <value>Verweise</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + <value>Anmerkungen</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + </choice> + </attribute> + </optional> + <empty/> + </element> + </define> + <define name="graphic"> + <element name="graphic"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(graphic) indicates the location of a graphic or illustration, either forming part of a text, or providing an image of it. [3.10. Graphics and Other Non-textual Components 12.1. Digital Facsimiles]</a:documentation> + <zeroOrMore> + <ref name="model.descLike"/> + </zeroOrMore> + <ref name="att.global.attributes"/> + <ref name="att.media.attributes"/> + <ref name="att.resourced.attributes"/> + <ref name="att.declaring.attributes"/> + <ref name="att.typed.attributes"/> + <ref name="att.cmc.attributes"/> + <empty/> + </element> + </define> + <define name="lb"> + <element name="lb"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(line beginning) marks the beginning of a new (typographic) line in some edition or version of a text. [3.11.3. Milestone +Elements 7.2.5. Speech Contents]</a:documentation> + <empty/> + <ref name="att.global.attributes"/> + <ref name="att.typed.attributes"/> + <ref name="att.spanning.attributes"/> + <ref name="att.breaking.attributes"/> + <ref name="att.cmc.attributes"/> + <empty/> + </element> + </define> + <define name="monogr"> + <element name="monogr"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(monographic level) contains bibliographic elements describing an item (e.g. a book or journal) published as an independent item (i.e. as a separate physical object). [3.12.2.1. Analytic, Monographic, and Series Levels]</a:documentation> + <group> + <optional> + <choice> + <group> + <choice> + <ref name="author"/> + <ref name="editor"/> + + + </choice> + <zeroOrMore> + <choice> + <ref name="author"/> + <ref name="editor"/> + + + </choice> + </zeroOrMore> + <oneOrMore> + <ref name="title"/> + </oneOrMore> + <zeroOrMore> + <choice> + <ref name="model.ptrLike"/> + + + <ref name="editor"/> + + </choice> + </zeroOrMore> + </group> + <group> + <oneOrMore> + <choice> + <ref name="title"/> + <ref name="model.ptrLike"/> + + </choice> + </oneOrMore> + <zeroOrMore> + <choice> + + <ref name="author"/> + <ref name="editor"/> + + + </choice> + </zeroOrMore> + </group> + <empty/> + </choice> + </optional> + <zeroOrMore> + <ref name="availability"/> + </zeroOrMore> + <zeroOrMore> + <ref name="model.noteLike"/> + </zeroOrMore> + <zeroOrMore> + <choice> + + <ref name="model.ptrLike"/> + <ref name="editor"/> + + + + </choice> + </zeroOrMore> + <ref name="imprint"/> + <zeroOrMore> + <choice> + <ref name="imprint"/> + + + </choice> + </zeroOrMore> + </group> + <ref name="att.global.attributes"/> + <empty/> + </element> + </define> + <define name="author"> + <element name="author"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(author) in a bibliographic reference, contains the name(s) of an author, personal or corporate, of a work; for example in the same form as that provided by a recognized bibliographic name authority. [3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement]</a:documentation> + <ref name="macro.phraseSeq"/> + <ref name="att.global.attributes"/> + <ref name="att.naming.attributes"/> + <ref name="att.datable.attributes"/> + <optional> + <attribute name="calendar"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates one or more systems or calendars to which the date represented by the content of this element belongs.</a:documentation> + <list> + <oneOrMore> + <data type="anyURI"> + <param name="pattern">\S+</param> + </data> + </oneOrMore> + </list> + </attribute> + </optional> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-author-calendar-calendar-check-author-constraint-rule-19"> + <sch:rule xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:*[@calendar]"> + <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more + systems or calendars to which the date represented by the content of this element belongs, + but this <sch:name/> element has no textual content.</sch:assert> + </sch:rule> + </pattern> + <empty/> + </element> + </define> + <define name="editor"> + <element name="editor"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a secondary statement of responsibility for a bibliographic item, for example the name of an individual, institution or organization, (or of several such) acting as editor, compiler, translator, etc. [3.12.2.2. Titles, Authors, and Editors]</a:documentation> + <ref name="macro.phraseSeq"/> + <ref name="att.global.attributes"/> + <ref name="att.naming.attributes"/> + <ref name="att.datable.attributes"/> + <optional> + <attribute name="calendar"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates one or more systems or calendars to which the date represented by the content of this element belongs.</a:documentation> + <list> + <oneOrMore> + <data type="anyURI"> + <param name="pattern">\S+</param> + </data> + </oneOrMore> + </list> + </attribute> + </optional> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-editor-calendar-calendar-check-editor-constraint-rule-20"> + <sch:rule xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:*[@calendar]"> + <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more + systems or calendars to which the date represented by the content of this element belongs, + but this <sch:name/> element has no textual content.</sch:assert> + </sch:rule> + </pattern> + <empty/> + </element> + </define> + <define name="title"> + <element name="title"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(title) contains a title for any kind of work. [3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement 2.2.5. The Series Statement]</a:documentation> + <ref name="macro.paraContent"/> + <ref name="att.global.attributes"/> + <ref name="att.typed.attribute.subtype"/> + <ref name="att.canonical.attributes"/> + <ref name="att.datable.attributes"/> + <ref name="att.cmc.attributes"/> + <optional> + <attribute name="type"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies the title according to some convenient typology. +Sample values include: 1] main; 2] sub (subordinate); 3] alt (alternate); 4] short; 5] desc (descriptive)</a:documentation> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </attribute> + </optional> + <optional> + <attribute name="calendar"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates one or more systems or calendars to which the date represented by the content of this element belongs.</a:documentation> + <list> + <oneOrMore> + <data type="anyURI"> + <param name="pattern">\S+</param> + </data> + </oneOrMore> + </list> + </attribute> + </optional> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-title-calendar-calendar-check-title-constraint-rule-21"> + <sch:rule xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:*[@calendar]"> + <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more + systems or calendars to which the date represented by the content of this element belongs, + but this <sch:name/> element has no textual content.</sch:assert> + </sch:rule> + </pattern> + <optional> + <attribute name="level"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the bibliographic level for a title, that is, whether it identifies an article, book, journal, series, or unpublished material.</a:documentation> + <choice> + <value>a</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(analytic) the title applies to an analytic item, such as an article, poem, or other work published as part of a larger item.</a:documentation> + <value>m</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(monographic) the title applies to a monograph such as a book or other item considered to be a distinct publication, including single volumes of multi-volume works</a:documentation> + <value>j</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(journal) the title applies to any serial or periodical publication such as a journal, magazine, or newspaper</a:documentation> + <value>s</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(series) the title applies to a series of otherwise distinct publications such as a collection</a:documentation> + <value>u</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(unpublished) the title applies to any unpublished material (including theses and dissertations unless published by a commercial press)</a:documentation> + </choice> + </attribute> + </optional> + <empty/> + </element> + </define> + <define name="imprint"> + <element name="imprint"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">groups information relating to the publication or distribution of a bibliographic item. [3.12.2.4. Imprint, Size of a Document, and Reprint Information]</a:documentation> + <group> + <zeroOrMore> + <empty/> + </zeroOrMore> + <oneOrMore> + <choice> + + + <ref name="model.imprintPart"/> + + + + <ref name="model.dateLike"/> + + </choice> + <zeroOrMore> + <ref name="model.global"/> + </zeroOrMore> + </oneOrMore> + </group> + <ref name="att.global.attributes"/> + <empty/> + </element> + </define> + <define name="publisher"> + <element name="publisher"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(publisher) provides the name of the organization responsible for the publication or distribution of a bibliographic item. [3.12.2.4. Imprint, Size of a Document, and Reprint Information 2.2.4. Publication, Distribution, Licensing, etc.]</a:documentation> + <ref name="macro.phraseSeq"/> + <ref name="att.global.attributes"/> + <ref name="att.canonical.attributes"/> + <empty/> + </element> + </define> + <define name="pubPlace"> + <element name="pubPlace"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(publication place) contains the name of the place where a bibliographic item was published. [3.12.2.4. Imprint, Size of a Document, and Reprint Information]</a:documentation> + <ref name="macro.phraseSeq"/> + <ref name="att.global.attributes"/> + <ref name="att.naming.attributes"/> + <empty/> + </element> + </define> + <define name="bibl"> + <element name="bibl"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(bibliographic citation) contains a loosely-structured bibliographic citation of which the sub-components may or may not be explicitly tagged. [3.12.1. Methods of Encoding Bibliographic References and Lists of References 2.2.7. The Source Description 16.3.2. Declarable Elements]</a:documentation> + <zeroOrMore> + <choice> + <text/> + <ref name="model.gLike"/> + <ref name="model.highlighted"/> + <ref name="model.pPart.data"/> + <ref name="model.pPart.edit"/> + <ref name="model.segLike"/> + <ref name="model.ptrLike"/> + <ref name="model.biblPart"/> + <ref name="model.global"/> + </choice> + </zeroOrMore> + <ref name="att.global.attributes"/> + <ref name="att.declarable.attributes"/> + <ref name="att.typed.attributes"/> + <ref name="att.docStatus.attributes"/> + <ref name="att.cmc.attributes"/> + <empty/> + </element> + </define> + <define name="biblStruct"> + <element name="biblStruct"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(structured bibliographic citation) contains a structured bibliographic citation, in which only bibliographic sub-elements appear and in a specified order. [3.12.1. Methods of Encoding Bibliographic References and Lists of References 2.2.7. The Source Description 16.3.2. Declarable Elements]</a:documentation> + <group> + <oneOrMore> + <ref name="monogr"/> + </oneOrMore> + <zeroOrMore> + <choice> + <ref name="model.noteLike"/> + <ref name="model.ptrLike"/> + <ref name="relatedItem"/> + + </choice> + </zeroOrMore> + </group> + <ref name="att.global.attributes"/> + <ref name="att.declarable.attributes"/> + <ref name="att.typed.attributes"/> + <ref name="att.docStatus.attributes"/> + <ref name="att.cmc.attributes"/> + <empty/> + </element> + </define> + <define name="relatedItem"> + <element name="relatedItem"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains or references some other bibliographic item which is related to the present one in some specified manner, for example as a constituent or alternative version of it. [3.12.2.7. Related Items]</a:documentation> + <optional> + <choice> + <ref name="model.biblLike"/> + <ref name="model.ptrLike"/> + </choice> + </optional> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-relatedItem-targetorcontent1-constraint-rule-22"> + <sch:rule xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:relatedItem"> + <sch:report test="@target and count( child::* ) > 0">If the @target attribute on <sch:name/> is used, the relatedItem element must be empty</sch:report> + <sch:assert test="@target or child::*">A relatedItem element should have either a @target attribute or a child element to indicate the related bibliographic item</sch:assert> + </sch:rule> + </pattern> + <ref name="att.global.attributes"/> + <ref name="att.typed.attributes"/> + <optional> + <attribute name="target"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to the related bibliographic element by means of an absolute or relative URI reference</a:documentation> + <data type="anyURI"> + <param name="pattern">\S+</param> + </data> + </attribute> + </optional> + <empty/> + </element> + </define> + <define name="divGen"> + <element name="divGen"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(automatically generated text division) indicates the location at which a textual division generated automatically by a text-processing application is to appear. [3.9.2. Index Entries]</a:documentation> + <zeroOrMore> + <ref name="model.headLike"/> + </zeroOrMore> + <ref name="att.global.attributes"/> + <ref name="att.typed.attribute.subtype"/> + <optional> + <attribute name="type"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies what type of generated text division (e.g. index, table of contents, etc.) is to appear. +Sample values include: 1] index; 2] toc; 3] figlist; 4] tablist</a:documentation> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </attribute> + </optional> + <empty/> + </element> + </define> + <define name="teiHeader"> + <element name="teiHeader"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(TEI header) supplies descriptive and declarative metadata associated with a digital resource or set of resources. [2.1.1. The TEI Header and Its Components 16.1. Varieties of Composite Text]</a:documentation> + <group> + <ref name="fileDesc"/> + <zeroOrMore> + <ref name="model.teiHeaderPart"/> + </zeroOrMore> + </group> + <ref name="att.global.attributes"/> + <empty/> + </element> + </define> + <define name="fileDesc"> + <element name="fileDesc"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(file description) contains a full bibliographic description of an electronic file. [2.2. The File Description 2.1.1. The TEI Header and Its Components]</a:documentation> + <group> + <ref name="titleStmt"/> + <optional> + <ref name="editionStmt"/> + </optional> + <ref name="publicationStmt"/> + <optional> + <ref name="notesStmt"/> + </optional> + <ref name="sourceDesc"/> + </group> + </element> + </define> + <define name="titleStmt"> + <element name="titleStmt"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(title statement) groups information about the title of a work and those responsible for its content. [2.2.1. The Title Statement 2.2. The File Description]</a:documentation> + <group> + <oneOrMore> + <ref name="title"/> + </oneOrMore> + <zeroOrMore> + <ref name="model.respLike"/> + </zeroOrMore> + </group> + <ref name="att.global.attributes"/> + <empty/> + </element> + </define> + <define name="editionStmt"> + <element name="editionStmt"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(edition statement) Provides information about the version and the download date of the file. This information is inserted by the WebApp and not to be supplied manually. [2.2.2. The Edition Statement 2.2. The File Description]</a:documentation> + <group> + <ref name="p"/> + <optional> + <ref name="p"/> + </optional> + </group> + </element> + </define> + <define name="publicationStmt"> + <element name="publicationStmt"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(publication statement) groups information concerning the publication or distribution of an electronic or other text. [2.2.4. Publication, Distribution, Licensing, etc. 2.2. The File Description]</a:documentation> + <ref name="publisher"/> + <ref name="availability"/> + </element> + </define> + <define name="availability"> + <element name="availability"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(availability) supplies information about the availability of a text, for example any restrictions on its use or distribution, its copyright status, any licence applying to it, etc. [2.2.4. Publication, Distribution, Licensing, etc.]</a:documentation> + <oneOrMore> + <ref name="licence"/> + </oneOrMore> + </element> + </define> + <define name="licence"> + <element name="licence"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains information about a licence or other legal agreement applicable to the text. [2.2.4. Publication, Distribution, Licensing, etc.]</a:documentation> + <ref name="macro.specialPara"/> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-licence-calendar-check-licence-constraint-rule-23"> + <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:*[@calendar]"> + <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more + systems or calendars to which the date represented by the content of this element belongs, + but this <sch:name/> element has no textual content.</sch:assert> + </sch:rule> + </pattern> + <ref name="att.global.attributes"/> + <ref name="att.pointing.attributes"/> + <ref name="att.datable.attributes"/> + <empty/> + </element> + </define> + <define name="notesStmt"> + <element name="notesStmt"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(notes statement) collects together any notes providing information about a text additional to that recorded in other parts of the bibliographic description. [2.2.6. The Notes Statement 2.2. The File Description]</a:documentation> + <oneOrMore> + <choice> + <ref name="note"/> + <ref name="relatedItem"/> + </choice> + </oneOrMore> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-notesStmt-count-notes-constraint-report-11"> + <rule context="tei:notesStmt"> + <sch:report xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + test="count(tei:note/@type) ne count(distinct-values(tei:note/concat(@type, @xml:lang, @target)))">Only one summary, incipit, and editorial are allowed within notesStmt.</sch:report> + </rule> + </pattern> + <ref name="att.global.attributes"/> + <empty/> + </element> + </define> + <define name="sourceDesc"> + <element name="sourceDesc"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(source description) describes the source from which an electronic text was derived or generated, typically a bibliographic description in the case of a digitized text, or a phrase such as "born digital" for a text which has no previous existence. [2.2.7. The Source Description]</a:documentation> + <choice> + <ref name="biblStruct"/> + <ref name="bibl"/> + <ref name="p"/> + </choice> + </element> + </define> + <define name="profileDesc"> + <element name="profileDesc"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(text-profile description) provides a detailed description of non-bibliographic aspects of a text, specifically the languages and sublanguages used, the situation in which it was produced, the participants and their setting. [2.4. The Profile Description 2.1.1. The TEI Header and Its Components]</a:documentation> + <ref name="textClass"/> + </element> + </define> + <define name="textClass"> + <element name="textClass"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(text classification) groups information which describes the nature or topic of a text in terms of a standard classification scheme, thesaurus, etc. [2.4.3. The Text Classification]</a:documentation> + <ref name="keywords"/> + <ref name="att.declarable.attributes"/> + <empty/> + </element> + </define> + <define name="keywords"> + <element name="keywords"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(keywords) contains a list of keywords or phrases identifying the topic or nature of a text. [2.4.3. The Text Classification]</a:documentation> + <oneOrMore> + <ref name="term"/> + </oneOrMore> + <attribute name="scheme"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the controlled vocabulary within which the set of keywords concerned is defined.</a:documentation> + <choice> + <value>asksam-cat</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + </choice> + </attribute> + <empty/> + </element> + </define> + <define name="TEI"> + <element name="TEI"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(TEI document) contains a single TEI-conformant document, combining a single TEI header with one or more members of the model.resource class. Multiple <code xmlns="http://www.w3.org/1999/xhtml" + xmlns:rng="http://relaxng.org/ns/structure/1.0"><TEI></code> elements may be combined within a <code xmlns="http://www.w3.org/1999/xhtml" + xmlns:rng="http://relaxng.org/ns/structure/1.0"><TEI></code> (or <code xmlns="http://www.w3.org/1999/xhtml" + xmlns:rng="http://relaxng.org/ns/structure/1.0"><teiCorpus></code>) element. [4. Default Text Structure 16.1. Varieties of Composite Text]</a:documentation> + <choice> + <group> + <ref name="teiHeader"/> + <choice> + <group> + <oneOrMore> + <ref name="model.resource"/> + </oneOrMore> + <optional> + <ref name="text"/> + </optional> + </group> + <ref name="text"/> + </choice> + </group> + <element name="ref"> + <attribute name="type"> + <value>duplicate</value> + </attribute> + <attribute name="target"> + <data type="string"> + <param name="pattern">A22\d{4}</param> + </data> + </attribute> + <empty/> + </element> + </choice> + <sch:ns xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + prefix="tei" + uri="http://www.tei-c.org/ns/1.0"/> + <sch:ns xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + prefix="xs" + uri="http://www.w3.org/2001/XMLSchema"/> + <sch:ns xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + prefix="rng" + uri="http://relaxng.org/ns/structure/1.0"/> + <sch:ns xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + prefix="rna" + uri="http://relaxng.org/ns/compatibility/annotations/1.0"/> + <sch:ns xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + prefix="sch" + uri="http://purl.oclc.org/dsdl/schematron"/> + <sch:ns xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + prefix="sch1x" + uri="http://www.ascc.net/xml/schematron"/> + <ref name="att.typed.attributes"/> + <attribute name="xml:id"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(identifier) provides a unique identifier for the element bearing the attribute.</a:documentation> + <data type="string"> + <param name="pattern">A22\d{4}</param> + </data> + </attribute> + <empty/> + </element> + </define> + <define name="text"> + <element name="text"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(text) contains a single text of any kind, whether unitary or composite, for example a poem or drama, a collection of essays, a novel, a dictionary, or a corpus sample. [4. Default Text Structure 16.1. Varieties of Composite Text]</a:documentation> + <group> + <zeroOrMore> + <ref name="model.global"/> + </zeroOrMore> + <rng:optional xmlns:rng="http://relaxng.org/ns/structure/1.0"> + <rng:group> + <rng:ref name="front"/> + <rng:zeroOrMore> + <rng:ref name="model.global"/> + </rng:zeroOrMore> + </rng:group> + </rng:optional> + <choice> + <ref name="body"/> + + </choice> + <rng:zeroOrMore xmlns:rng="http://relaxng.org/ns/structure/1.0"> + <rng:ref name="model.global"/> + </rng:zeroOrMore> + </group> + <ref name="att.global.attributes"/> + <ref name="att.declaring.attributes"/> + <ref name="att.typed.attributes"/> + <ref name="att.written.attributes"/> + <empty/> + </element> + </define> + <define name="body"> + <element name="body"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(text body) contains the whole body of a single unitary text, excluding any front or back matter. [4. Default Text Structure]</a:documentation> + <group> + <zeroOrMore> + <ref name="model.global"/> + </zeroOrMore> + <rng:optional xmlns:rng="http://relaxng.org/ns/structure/1.0"> + <rng:group> + <rng:ref name="model.divTop"/> + <rng:zeroOrMore> + <rng:choice> + <rng:ref name="model.global"/> + <rng:ref name="model.divTop"/> + </rng:choice> + </rng:zeroOrMore> + </rng:group> + </rng:optional> + <rng:optional xmlns:rng="http://relaxng.org/ns/structure/1.0"> + <rng:group> + <rng:ref name="model.divGenLike"/> + <rng:zeroOrMore> + <rng:choice> + <rng:ref name="model.global"/> + <rng:ref name="model.divGenLike"/> + </rng:choice> + </rng:zeroOrMore> + </rng:group> + </rng:optional> + <choice> + + <oneOrMore> + <ref name="model.divLike"/> + <zeroOrMore> + <choice> + <ref name="model.global"/> + <ref name="model.divGenLike"/> + </choice> + </zeroOrMore> + </oneOrMore> + + <oneOrMore> + <ref name="model.div1Like"/> + <zeroOrMore> + <choice> + <ref name="model.global"/> + <ref name="model.divGenLike"/> + </choice> + </zeroOrMore> + </oneOrMore> + + <group> + <oneOrMore> + <choice> + + <ref name="model.common"/> + </choice> + <zeroOrMore> + <ref name="model.global"/> + </zeroOrMore> + </oneOrMore> + <optional> + <choice> + + <oneOrMore> + <ref name="model.divLike"/> + <zeroOrMore> + <choice> + <ref name="model.global"/> + <ref name="model.divGenLike"/> + </choice> + </zeroOrMore> + </oneOrMore> + + <oneOrMore> + <ref name="model.div1Like"/> + <zeroOrMore> + <choice> + <ref name="model.global"/> + <ref name="model.divGenLike"/> + </choice> + </zeroOrMore> + </oneOrMore> + </choice> + </optional> + </group> + </choice> + <zeroOrMore> + <ref name="model.divBottom"/> + <zeroOrMore> + <ref name="model.global"/> + </zeroOrMore> + </zeroOrMore> + </group> + <ref name="att.global.attributes"/> + <ref name="att.declaring.attributes"/> + <empty/> + </element> + </define> + <define name="div"> + <element name="div"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(text division) contains a subdivision of the front, body, or back of a text. [4.1. Divisions of the Body]</a:documentation> + <group> + <zeroOrMore> + <choice> + <ref name="model.divTop"/> + + <ref name="model.global"/> + </choice> + </zeroOrMore> + <rng:optional xmlns:rng="http://relaxng.org/ns/structure/1.0"> + <rng:group> + <rng:choice> + <oneOrMore> + <rng:choice> + <rng:ref name="model.divLike"/> + <rng:ref name="model.divGenLike"/> + </rng:choice> + <rng:zeroOrMore> + <rng:ref name="model.global"/> + </rng:zeroOrMore> + </oneOrMore> + <group> + <oneOrMore> + <rng:ref name="model.common"/> + <rng:zeroOrMore> + <rng:ref name="model.global"/> + </rng:zeroOrMore> + </oneOrMore> + <rng:zeroOrMore> + <rng:choice> + <rng:ref name="model.divLike"/> + <rng:ref name="model.divGenLike"/> + </rng:choice> + <rng:zeroOrMore> + <rng:ref name="model.global"/> + </rng:zeroOrMore> + </rng:zeroOrMore> + </group> + </rng:choice> + <rng:zeroOrMore> + <rng:ref name="model.divBottom"/> + <rng:zeroOrMore> + <rng:ref name="model.global"/> + </rng:zeroOrMore> + </rng:zeroOrMore> + </rng:group> + </rng:optional> + </group> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-div-abstractModel-structure-div-in-l-or-lg-constraint-rule-24"> + <sch:rule xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:div"> + <sch:report test="(ancestor::tei:l or ancestor::tei:lg) and not(ancestor::tei:floatingText)"> + Abstract model violation: Lines may not contain higher-level structural elements such as div, unless div is a descendant of floatingText. + </sch:report> + </sch:rule> + </pattern> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-div-abstractModel-structure-div-in-ab-or-p-constraint-rule-25"> + <sch:rule xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:div"> + <sch:report test="(ancestor::tei:p or ancestor::tei:ab) and not(ancestor::tei:floatingText)"> + Abstract model violation: p and ab may not contain higher-level structural elements such as div, unless div is a descendant of floatingText. + </sch:report> + </sch:rule> + </pattern> + <ref name="att.global.attributes"/> + <ref name="att.divLike.attributes"/> + <ref name="att.typed.attributes"/> + <ref name="att.declaring.attributes"/> + <ref name="att.written.attributes"/> + <empty/> + </element> + </define> + <define name="titlePage"> + <element name="titlePage"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(title page) contains the title page of a text, appearing within the front or back matter. [4.6. Title Pages]</a:documentation> + <group> + <zeroOrMore> + <ref name="model.global"/> + </zeroOrMore> + <ref name="model.titlepagePart"/> + <zeroOrMore> + <choice> + <ref name="model.titlepagePart"/> + <ref name="model.global"/> + </choice> + </zeroOrMore> + </group> + <ref name="att.global.attributes"/> + <ref name="att.typed.attribute.subtype"/> + <optional> + <attribute name="type"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies the title page according to any convenient typology.</a:documentation> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </attribute> + </optional> + <empty/> + </element> + </define> + <define name="titlePart"> + <element name="titlePart"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(title part) contains a subsection or division of the title of a work, as indicated on a title page. [4.6. Title Pages]</a:documentation> + <ref name="macro.paraContent"/> + <ref name="att.global.attributes"/> + <ref name="att.typed.attribute.subtype"/> + <optional> + <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + name="type" + a:defaultValue="main"> + <a:documentation>(type) specifies the role of this subdivision of the title. +Suggested values include: 1] main (main); 2] sub (subordinate); 3] alt (alternate); 4] short (short); 5] desc (descriptive)</a:documentation> + <choice> + <value>main</value> + <a:documentation>(main) main title of the work</a:documentation> + <value>sub</value> + <a:documentation>(subordinate) subtitle of the work</a:documentation> + <value>alt</value> + <a:documentation>(alternate) alternative title of the work</a:documentation> + <value>short</value> + <a:documentation>(short) abbreviated form of title</a:documentation> + <value>desc</value> + <a:documentation>(descriptive) descriptive paraphrase of the work</a:documentation> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </choice> + </attribute> + </optional> + <empty/> + </element> + </define> + <define name="front"> + <element name="front"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(front matter) contains any prefatory matter (headers, abstracts, title page, prefaces, dedications, etc.) found at the start of a document, before the main body. [4.6. Title Pages 4. Default Text Structure]</a:documentation> + <group> + <zeroOrMore> + <choice> + <ref name="model.frontPart"/> + <ref name="model.pLike"/> + <ref name="model.pLike.front"/> + <ref name="model.global"/> + </choice> + </zeroOrMore> + <rng:optional xmlns:rng="http://relaxng.org/ns/structure/1.0"> + <rng:group> + <rng:choice> + <group> + <rng:ref name="model.div1Like"/> + <rng:zeroOrMore> + <rng:choice> + <rng:ref name="model.div1Like"/> + <rng:ref name="model.frontPart"/> + <rng:ref name="model.global"/> + </rng:choice> + </rng:zeroOrMore> + </group> + <group> + <rng:ref name="model.divLike"/> + <rng:zeroOrMore> + <rng:choice> + <rng:ref name="model.divLike"/> + <rng:ref name="model.frontPart"/> + <rng:ref name="model.global"/> + </rng:choice> + </rng:zeroOrMore> + </group> + </rng:choice> + <optional> + <rng:ref name="model.divBottom"/> + <rng:zeroOrMore> + <rng:choice> + <rng:ref name="model.divBottom"/> + <rng:ref name="model.global"/> + </rng:choice> + </rng:zeroOrMore> + </optional> + </rng:group> + </rng:optional> + </group> + <ref name="att.global.attributes"/> + <ref name="att.declaring.attributes"/> + <empty/> + </element> + </define> + <define name="model.persNamePart"> + <notAllowed/> + </define> + <define name="model.persNamePart_alternation"> + <notAllowed/> + </define> + <define name="model.persNamePart_sequence"> + <empty/> + </define> + <define name="model.persNamePart_sequenceOptional"> + <empty/> + </define> + <define name="model.persNamePart_sequenceOptionalRepeatable"> + <empty/> + </define> + <define name="model.persNamePart_sequenceRepeatable"> + <notAllowed/> + </define> + <define name="orgName"> + <element name="orgName"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(organization name) contains an organizational name. [14.2.2. Organizational Names]</a:documentation> + <ref name="macro.phraseSeq"/> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-orgName-parent-org-constraint-rule-26"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:orgName[parent::tei:org]"> + <sch:report test="@key or not(@type)">It is required to give the type ('alt' or 'reg') of the name while @key is forbiden here.</sch:report> + </sch:rule> + </pattern> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-orgName-parent-org-reg-constraint-rule-27"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:orgName[parent::tei:org and not(preceding::tei:orgName)]"> + <sch:assert test="@type='reg'">There must exactly be one name with @type='reg'.</sch:assert> + </sch:rule> + </pattern> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-orgName-parent-org-reg2-constraint-rule-28"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:orgName[parent::tei:org and preceding::tei:orgName]"> + <sch:report test="@type='reg'">Only the first name can be of @type='reg'. Following names are supposed to be alternative names, @type='alt'.</sch:report> + </sch:rule> + </pattern> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-orgName-parent-not-org-constraint-rule-29"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:orgName[not(parent::tei:org)]"> + <sch:report test="@type">No @type attribute allowed here.</sch:report> + </sch:rule> + </pattern> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-orgName-calendar-check-orgName-constraint-rule-30"> + <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:*[@calendar]"> + <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more + systems or calendars to which the date represented by the content of this element belongs, + but this <sch:name/> element has no textual content.</sch:assert> + </sch:rule> + </pattern> + <ref name="att.cmc.attributes"/> + <optional> + <attribute name="type"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + <choice> + <value>reg</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + <value>alt</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + </choice> + </attribute> + </optional> + <optional> + <attribute name="key"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides an externally-defined means of identifying the entity (or entities) being named, using a coded value of some kind.</a:documentation> + <data type="string"> + <param name="pattern">A08\d{4}</param> + </data> + </attribute> + </optional> + <ref name="att.global.responsibility.attribute.cert"/> + <empty/> + </element> + </define> + <define name="persName"> + <element name="persName"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(personal name) contains a proper noun or proper-noun phrase referring to a person, possibly including one or more of the person's forenames, surnames, honorifics, added names, etc. [14.2.1. Personal Names]</a:documentation> + <ref name="macro.phraseSeq"/> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-persName-calendar-check-persName-constraint-rule-31"> + <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:*[@calendar]"> + <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more + systems or calendars to which the date represented by the content of this element belongs, + but this <sch:name/> element has no textual content.</sch:assert> + </sch:rule> + </pattern> + <ref name="att.cmc.attributes"/> + <optional> + <attribute name="key"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides an externally-defined means of identifying the entity (or entities) being named, using a coded value of some kind.</a:documentation> + <data type="string"> + <param name="pattern">A00[0-9A-F]{4}</param> + </data> + </attribute> + </optional> + <ref name="att.global.responsibility.attribute.cert"/> + <empty/> + </element> + </define> + <define name="placeName"> + <element name="placeName"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(place name) contains an absolute or relative place name. [14.2.3. Place Names]</a:documentation> + <ref name="macro.phraseSeq"/> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-placeName-calendar-check-placeName-constraint-rule-32"> + <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:*[@calendar]"> + <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more + systems or calendars to which the date represented by the content of this element belongs, + but this <sch:name/> element has no textual content.</sch:assert> + </sch:rule> + </pattern> + <ref name="att.cmc.attributes"/> + <optional> + <attribute name="type"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">categorisation of varying localities.</a:documentation> + <choice> + <value>theatre</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes buildings designed for performing plays, operas etc. (e.g. (amphi)theatres, operas, ball rooms).</a:documentation> + <value>building</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes all sorts of building where no other category is applicable (e.g. bath, bookshop, office).</a:documentation> + <value>hospitality</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes buildings designed for lodging, serving food, drinks, etc. (e.g. hotels, bars, inns).</a:documentation> + <value>sacral-building</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes buildings serving religious purposes (e.g. churches, abbeys).</a:documentation> + <value>administrative-building</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes buildings designed for government administration (e.g. city hall, castle, police station, custom office).</a:documentation> + <value>art-building</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes buildings designed for (art) exhibitions (e.g. museums, galleries).</a:documentation> + <value>shop</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes buildings designed for selling goods and services to the end-user (e.g. markets, shops).</a:documentation> + <value>street</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes a street or a street name.</a:documentation> + <value>park</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes a botanical or zoological garden, or any other park area.</a:documentation> + </choice> + </attribute> + </optional> + <optional> + <attribute name="key"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> + <data type="string"> + <param name="pattern">A13\d{4}</param> + </data> + </attribute> + </optional> + <ref name="att.global.responsibility.attribute.cert"/> + <empty/> + </element> + </define> + <define name="country"> + <element name="country"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(country) marks the name of a geo-political unit, such as a nation or country at the contemporary period. [14.2.3. Place Names]</a:documentation> + <ref name="macro.phraseSeq"/> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-country-calendar-check-country-constraint-rule-33"> + <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:*[@calendar]"> + <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more + systems or calendars to which the date represented by the content of this element belongs, + but this <sch:name/> element has no textual content.</sch:assert> + </sch:rule> + </pattern> + <ref name="att.cmc.attributes"/> + <ref name="att.global.responsibility.attribute.cert"/> + <empty/> + </element> + </define> + <define name="settlement"> + <element name="settlement"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(settlement) marks the name of a settlement identified as a single geo-political or administrative unit. [14.2.3. Place Names]</a:documentation> + <ref name="macro.phraseSeq"/> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-settlement-calendar-check-settlement-constraint-rule-34"> + <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:*[@calendar]"> + <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more + systems or calendars to which the date represented by the content of this element belongs, + but this <sch:name/> element has no textual content.</sch:assert> + </sch:rule> + </pattern> + <ref name="att.cmc.attributes"/> + <optional> + <attribute name="key"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides an externally-defined means of identifying the entity (or entities) being named, using a coded value of some kind.</a:documentation> + <data type="string"> + <param name="pattern">A13\d{4}</param> + </data> + </attribute> + </optional> + <ref name="att.global.responsibility.attribute.cert"/> + <empty/> + </element> + </define> + <define name="att.tableDecoration.attributes"> + <ref name="att.tableDecoration.attribute.role"/> + <ref name="att.tableDecoration.attribute.rows"/> + <ref name="att.tableDecoration.attribute.cols"/> + </define> + <define name="att.tableDecoration.attribute.role"> + <optional> + <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + name="role" + a:defaultValue="data"> + <a:documentation>(role) indicates the kind of information held in this cell or in each cell of this row. +Suggested values include: 1] label; 2] data</a:documentation> + <choice> + <value>label</value> + <a:documentation>labelling or descriptive information only.</a:documentation> + <value>data</value> + <a:documentation>data values.</a:documentation> + <data type="token"> + <param name="pattern">[^\p{C}\p{Z}]+</param> + </data> + </choice> + </attribute> + </optional> + </define> + <define name="att.tableDecoration.attribute.rows"> + <optional> + <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + name="rows" + a:defaultValue="1"> + <a:documentation>(rows) indicates the number of rows occupied by this cell or row.</a:documentation> + <data type="nonNegativeInteger"/> + </attribute> + </optional> + </define> + <define name="att.tableDecoration.attribute.cols"> + <optional> + <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + name="cols" + a:defaultValue="1"> + <a:documentation>(columns) indicates the number of columns occupied by this cell or row.</a:documentation> + <data type="nonNegativeInteger"/> + </attribute> + </optional> + </define> + <define name="table"> + <element name="table"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(table) contains text displayed in tabular form, in rows and columns [15.1.1. TEI Tables]</a:documentation> + <group> + <optional> + <ref name="head"/> + </optional> + <oneOrMore> + <ref name="row"/> + </oneOrMore> + </group> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-table-collapsible-head-constraint-report-17"> + <rule context="tei:table"> + <sch:report xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + test="@rend='collapsible' and not(tei:head)">For the collapsible feature to work a head must be given for the <sch:name/>.</sch:report> + </rule> + </pattern> + <ref name="att.typed.attributes"/> + <ref name="att.cmc.attributes"/> + <optional> + <attribute name="rend"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(rendition) WeGA: rendering information for the output(!)</a:documentation> + <choice> + <value>median</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">computes the column widths with the median average.</a:documentation> + <value>collapsible</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">renders the table collapsible. A <code xmlns="http://www.w3.org/1999/xhtml" + xmlns:rng="http://relaxng.org/ns/structure/1.0"><head></code> element must be given for toggling.</a:documentation> + </choice> + </attribute> + </optional> + <ref name="att.global.attribute.xmlid"/> + <empty/> + </element> + </define> + <define name="row"> + <element name="row"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(row) contains one row of a table [15.1.1. TEI Tables]</a:documentation> + <oneOrMore> + <ref name="cell"/> + </oneOrMore> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-row-number-of-cells-constraint-rule-35"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:row[preceding-sibling::tei:row]"> + <sch:let name="thisNode" value="."/> + + <sch:let name="thisRowCellCount" + value="count(tei:cell[not(@cols)]) + sum(tei:cell/@cols)"/> + + <sch:let name="precedingCellsWithRowspan" + value="preceding-sibling::tei:row/tei:cell[@rows][some $i in (1 to xs:integer(@rows - 1)) satisfies parent::tei:row/following-sibling::tei:row[$i] is $thisNode]"/> + + <sch:let name="precedingCellsWithRowspanPlus1" + value="preceding-sibling::tei:row/tei:cell[@rows][some $i in (1 to xs:integer(@rows)) satisfies parent::tei:row/following-sibling::tei:row[$i] is $thisNode]"/> + + <sch:let name="precedingCellsWithRowspanCount" + value="count($precedingCellsWithRowspan[not(@cols)]) + sum($precedingCellsWithRowspan/@cols)"/> + + <sch:let name="precedingRowCellCount" + value=" count(preceding-sibling::tei:row[1]/tei:cell[not(@cols)]) + sum(preceding-sibling::tei:row[1]/tei:cell/@cols) + count(($precedingCellsWithRowspanPlus1 except preceding-sibling::tei:row[1]/tei:cell)[not(@cols)]) + sum(($precedingCellsWithRowspanPlus1 except preceding-sibling::tei:row[1]/tei:cell)/@cols)"/> + <sch:assert test="$thisRowCellCount + $precedingCellsWithRowspanCount = $precedingRowCellCount">The total ammount of cells should be equal for every row in a table. This row ammounts to <sch:value-of select="$thisRowCellCount + $precedingCellsWithRowspanCount"/> cells (possibly affected by some preceding rowspans, i.e. cell/@rows) instead of <sch:value-of select="$precedingRowCellCount"/> for the preceding row.</sch:assert> + </sch:rule> + </pattern> + <ref name="att.tableDecoration.attributes"/> + <ref name="att.global.rendition.attribute.rend"/> + <empty/> + </element> + </define> + <define name="cell"> + <element name="cell"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(cell) contains one cell of a table [15.1.1. TEI Tables]</a:documentation> + <ref name="macro.specialPara"/> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + id="wegaSourcesTEI-cell-cell-rows-constraint-rule-36"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + context="tei:cell[@rows]"> + <sch:report test="(count(parent::tei:row/following-sibling::tei:row) + 1) lt number(@rows)">There are less following rows than indicated in the @rows attribute.</sch:report> + </sch:rule> + </pattern> + <ref name="att.tableDecoration.attributes"/> + <empty/> + </element> + </define> + <define name="figure"> + <element name="figure"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(figure) groups elements representing or containing graphic information such as an illustration, formula, or figure. [15.4. Specific Elements for Graphic Images]</a:documentation> + <group> + <ref name="figDesc"/> + <zeroOrMore> + <ref name="graphic"/> + </zeroOrMore> + </group> + <ref name="att.written.attributes"/> + <ref name="att.cmc.attributes"/> + <optional> + <attribute name="rend"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(rendition) WeGA: rendering information for the output(!)</a:documentation> + <choice> + <value>align-horizontally</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The images should be aligned horizontally next to each other.</a:documentation> + <value>inline</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies whether the image is to be rendered inline.</a:documentation> + <value>maxSize</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The image should be output in maximum size (dependent on display size and resolution).</a:documentation> + <value>float-right</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The image should be output on the right, with text floating around.</a:documentation> + <value>float-left</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The image should be output on the left, with text floating around.</a:documentation> + </choice> + </attribute> + </optional> + <ref name="att.global.attribute.xmlid"/> + <empty/> + </element> + </define> + <define name="figDesc"> + <element name="figDesc"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(description of figure) contains a brief prose description of the appearance or content of a graphic figure, for use when documenting an image without displaying it. [15.4. Specific Elements for Graphic Images]</a:documentation> + <ref name="macro.limitedContent"/> + <optional> + <attribute name="rend"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(rendition) WeGA: rendering information for the output(!)</a:documentation> + <choice> + <value>caption</value> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">marks the ficDesc content as a caption line to the output.</a:documentation> + </choice> + </attribute> + </optional> + <empty/> + </element> + </define> + <define name="characterName"> + <element name="characterName"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(characterName) name of a role or character in a work.</a:documentation> + <ref name="macro.phraseSeq"/> + <ref name="att.global.responsibility.attribute.cert"/> + <empty/> + </element> + </define> + <define name="workName"> + <element name="workName"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">name of a work (e.g. composition)</a:documentation> + <ref name="macro.phraseSeq"/> + <optional> + <attribute name="key"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides an externally-defined means of identifying the entity (or entities) being named, using a coded value of some kind.</a:documentation> + <data type="string"> + <param name="pattern">A02\d{4}</param> + </data> + </attribute> + </optional> + <ref name="att.global.responsibility.attribute.cert"/> + <empty/> + </element> + </define> + <define name="footNote"> + <element name="footNote"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Special element for the transcription of a footnote (not necessarily to be rendered as such)</a:documentation> + <ref name="macro.specialPara"/> + <optional> + <attribute name="n"> + <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">captures the original footnote reference number</a:documentation> + <data type="nonNegativeInteger"/> + </attribute> + </optional> + <ref name="att.global.attribute.xmlid"/> + <empty/> + </element> + </define> + <start> + <choice> + <ref name="TEI"/> + </choice> + </start> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-styleguide-document-node-content-constraint-rule-37"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="document-node()"> + <sch:report test="count(processing-instruction()) ne 2">WeGA styleguide error: there should exactly be two processing instructions before the root element</sch:report> + <sch:report test="comment()">WeGA styleguide error: there should be no comments outside the root element</sch:report> + </sch:rule> + </pattern> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-whitespaceOnlyContent-constraint-rule-38"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="tei:surname | tei:forename | tei:persName | tei:author[not(@sameAs)] | tei:occupation | tei:settlement | tei:country | tei:region | tei:rs | tei:workName | tei:characterName | tei:hi[not(.//tei:gap)] | tei:head | tei:note[not(@type=('thematicCom'))] | tei:placeName | tei:title | tei:seg | tei:item[not(@* or *)]"> + <sch:report test="normalize-space(.) = ''"> + <sch:name/> has whitespace only content</sch:report> + </sch:rule> + </pattern> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-elementStartsWithWhitespace-constraint-rule-39"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="tei:surname | tei:forename | tei:persName[not(@type)] | tei:author | tei:occupation | tei:settlement | tei:country | tei:region | tei:rs | tei:workName | tei:characterName | tei:hi | tei:placeName[not(parent::tei:address or parent::tei:birth or parent::tei:death)]"> + <sch:report test="matches(.,'^\s') and (node()[1] = text()[1])">whitespace at the beginning of element <sch:name/> + </sch:report> + </sch:rule> + </pattern> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-untrimmedAttributeValues-constraint-rule-40"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="*[@*]"> + <sch:report test="some $i in @* satisfies string-length(normalize-unicode(normalize-space(replace($i, ' | | | ', ' ')))) ne string-length($i)">There is some whitespace here at the beginning or end of some attribute value.</sch:report> + </sch:rule> + </pattern> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-wegaTargets-constraint-rule-41"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="*[starts-with(@target, 'wega:')]"> + <sch:assert test="matches(@target, '^wega:A[0-9A-F]{6}(#.+)?(\s+wega:A[0-9A-F]{6}(#.+)?)*$')">"wega"-prefixed URIs must follow the pattern "wega:A002068" (i.e. without any file extension)</sch:assert> + </sch:rule> + </pattern> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-emojiCheck-constraint-rule-42"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="*[some $i in text() satisfies normalize-space($i) ne '']"> + <sch:report test="matches(., '[⌚-⌛]|[⏩-⏬]|[⏰]|[⏳]|[◽-◾]|[☔-☕]|[♈-♓]|[♿]|[⚓]|[⚡]|[⚪-⚫]|[⚽-⚾]|[⛄-⛅]|[⛎]|[⛔]|[⛪]|[⛲-⛳]|[⛵]|[⛺]|[⛽]|[✅]|[✊-✋]|[✨]|[❌]|[❎]|[❓-❕]|[❗]|[➕-➗]|[➰]|[➿]|[⬛-⬜]|[⭐]|[⭕]|[🀄]|[🃏]|[🆎]|[🆑-🆚]|[🇦-🇿]|[🈁]|[🈚]|[🈯]|[🈲-🈶]|[🈸-🈺]|[🉐-🉑]|[🌀-🌠]|[🌭-🌯]|[🌰-🌵]|[🌷-🍼]|[🍾-🍿]|[🎀-🎓]|[🎠-🏄]|[🏅]|[🏆-🏊]|[🏏-🏓]|[🏠-🏰]|[🏴]|[🏸-🏿]|[🐀-🐾]|[👀]|[👂-📷]|[📸]|[📹-📼]|[📿]|[🔀-🔽]|[🕋-🕎]|[🕐-🕧]|[🕺]|[🖕-🖖]|[🖤]|[🗻-🗿]|[😀]|[😁-😐]|[😑]|[😒-😔]|[😕]|[😖]|[😗]|[😘]|[😙]|[😚]|[😛]|[😜-😞]|[😟]|[😠-😥]|[😦-😧]|[😨-😫]|[😬]|[😭]|[😮-😯]|[😰-😳]|[😴]|[😵-🙀]|[🙁-🙂]|[🙃-🙄]|[🙅-🙏]|[🚀-🛅]|[🛌]|[🛐]|[🛑-🛒]|[🛕]|[🛫-🛬]|[🛴-🛶]|[🛷-🛸]|[🛹]|[🛺]|[🟠-🟫]|[🤍-🤏]|[🤐-🤘]|[🤙-🤞]|[🤟]|[🤠-🤧]|[🤨-🤯]|[🤰]|[🤱-🤲]|[🤳-🤺]|[🤼-🤾]|[🤿]|[🥀-🥅]|[🥇-🥋]|[🥌]|[🥍-🥏]|[🥐-🥞]|[🥟-🥫]|[🥬-🥰]|[🥱]|[🥳-🥶]|[🥺]|[🥻]|[🥼-🥿]|[🦀-🦄]|[🦅-🦑]|[🦒-🦗]|[🦘-🦢]|[🦥-🦪]|[🦮-🦯]|[🦰-🦹]|[🦺-🦿]|[🧀]|[🧁-🧂]|[🧃-🧊]|[🧍-🧏]|[🧐-🧦]|[🧧-🧿]|[🩰-🩳]|[🩸-🩺]|[🪀-🪂]|[🪐-🪕]')">Text contains characters with Emoji presentation as default.</sch:report> + </sch:rule> + </pattern> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-sourceMustResolve-constraint-rule-43"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="*[starts-with(@source, '#')]"> + <sch:let name="source" value="@source"/> + <sch:assert test="id(substring($source,2))">Unable to locate the reference provided by the @source attribute.</sch:assert> + </sch:rule> + </pattern> + <sch:ns xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + prefix="teix" + uri="http://www.tei-c.org/ns/Examples"/> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-targetMustResolve-constraint-rule-44"> + <sch:rule xmlns:sch="http://purl.oclc.org/dsdl/schematron" + context="*[starts-with(@target, '#')][not(ancestor::teix:*)]"> + <sch:let name="target" value="@target"/> + <sch:assert test="id(substring($target,2))">Unable to locate the reference provided by the @target attribute.</sch:assert> + </sch:rule> + </pattern> + <pattern xmlns="http://purl.oclc.org/dsdl/schematron" + id="wegaSourcesTEI-anonymus-id-constraint-rule-45"> + <sch:rule xmlns:mei="http://www.music-encoding.org/ns/mei" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:s="http://www.ascc.net/xml/schematron" + xmlns:sch="http://purl.oclc.org/dsdl/schematron" + xmlns="http://www.tei-c.org/ns/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + context="*[@key|@codedval]"> + <sch:report test="(@key | @codedval) = 'A007979'">Please do not link to the anonymus ID.</sch:report> + </sch:rule> + </pattern> +</grammar>