<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:tei="http://www.tei-c.org/ns/1.0"
         xmlns:teix="http://www.tei-c.org/ns/Examples"
         xmlns:xlink="http://www.w3.org/1999/xlink"
         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
         ns="http://www.tei-c.org/ns/1.0"><!--
Schema generated from ODD source 1970-01-01. . 
TEI Edition: P5 Version 4.12.0. Last updated on 28th July 2026, revision 113e933e2 
TEI Edition Location: https://www.tei-c.org/Vault/P5/4.12.0/ 
  
--><!--[https://creativecommons.org/licenses/by/4.0/] Creative Commons Attribution 4.0 International License-->
   <define name="macro.abContent">
      <zeroOrMore>
         <choice>
            <text/>
            <ref name="model.paraPart"/>
            <ref name="ab"/>
         </choice>
      </zeroOrMore>
   </define>
   <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.phraseSeq.limited">
      <zeroOrMore>
         <choice>
            <text/>
            <ref name="model.limitedPhrase"/>
            <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.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>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <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">&lt;refsDecl&gt;</code> element in the TEI header.</a:documentation>
            <data type="string"/>
         </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.citing.attribute.from">
      <optional>
         <attribute name="from">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the starting point of the range of units indicated by the <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@unit</code> attribute.</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.citing.attribute.to">
      <optional>
         <attribute name="to">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the end-point of the range of units indicated by the <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@unit</code> attribute.</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <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="welte-ads-att.cmc-generatedBy-CMC_generatedBy_within_post-constraint-rule-1">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:rng="http://relaxng.org/ns/structure/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                context="tei:*[@generatedBy]">
         <sch:assert test="ancestor-or-self::tei:post">The @generatedBy attribute is for use within a &lt;post&gt; element.</sch:assert>
      </sch:rule>
   </pattern>
   <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"/>
               <data type="gMonth"/>
               <data type="gDay"/>
               <data type="gYearMonth"/>
               <data type="gMonthDay"/>
               <data type="time"/>
               <data type="dateTime"/>
            </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"/>
               <data type="gMonth"/>
               <data type="gDay"/>
               <data type="gYearMonth"/>
               <data type="gMonthDay"/>
               <data type="time"/>
               <data type="dateTime"/>
            </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"/>
               <data type="gMonth"/>
               <data type="gDay"/>
               <data type="gYearMonth"/>
               <data type="gMonthDay"/>
               <data type="time"/>
               <data type="dateTime"/>
            </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"/>
               <data type="gMonth"/>
               <data type="gDay"/>
               <data type="gYearMonth"/>
               <data type="gMonthDay"/>
               <data type="time"/>
               <data type="dateTime"/>
            </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"/>
               <data type="gMonth"/>
               <data type="gDay"/>
               <data type="gYearMonth"/>
               <data type="gMonthDay"/>
               <data type="time"/>
               <data type="dateTime"/>
            </choice>
         </attribute>
      </optional>
   </define>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="welte-ads-att.datable.w3c-att-datable-w3c-when-constraint-rule-2">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:rng="http://relaxng.org/ns/structure/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                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="welte-ads-att.datable.w3c-att-datable-w3c-from-constraint-rule-3">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:rng="http://relaxng.org/ns/structure/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                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="welte-ads-att.datable.w3c-att-datable-w3c-to-constraint-rule-4">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:rng="http://relaxng.org/ns/structure/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                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.datcat.attributes">
      <ref name="att.datcat.attribute.datcat"/>
      <ref name="att.datcat.attribute.valueDatcat"/>
      <ref name="att.datcat.attribute.targetDatcat"/>
   </define>
   <define name="att.datcat.attribute.datcat">
      <optional>
         <attribute name="datcat">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a pointer to a definition of, and/or general information about, (a) an information container (element or attribute) or (b) a value of an information container (element content or attribute value), by referencing an external taxonomy or ontology. If <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@valueDatcat</code> is present in the immediate context, this attribute takes on role (a), while <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@valueDatcat</code> performs role (b).</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.datcat.attribute.valueDatcat">
      <optional>
         <attribute name="valueDatcat">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a definition of, and/or general information about a value of an information container (element content or attribute value), by reference to an external taxonomy or ontology. Used especially where a contrast with <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@datcat</code> is needed.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.datcat.attribute.targetDatcat">
      <optional>
         <attribute name="targetDatcat">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a definition of, and/or general information about, information structure of an object referenced or modeled by the containing element, by reference to an external taxonomy or ontology. This attribute has the characteristics of the <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@datcat</code> attribute, except that it addresses not its containing element, but an object that is being referenced or modeled by its containing element.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </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">(declarations) 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>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.docStatus.attributes">
      <ref name="att.docStatus.attribute.status"/>
   </define>
   <define name="att.docStatus.attribute.status">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="status"
                    a:defaultValue="draft">
            <a:documentation>describes the status of a document either currently or, when associated with a dated element, at the time indicated.
Sample values include: 1] approved; 2] candidate; 3] cleared; 4] deprecated; 5] draft; 6] embargoed; 7] expired; 8] frozen; 9] galley; 10] proposed; 11] published; 12] recommendation; 13] submitted; 14] unfinished; 15] withdrawn</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </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.edition.attributes">
      <ref name="att.edition.attribute.ed"/>
      <ref name="att.edition.attribute.edRef"/>
   </define>
   <define name="att.edition.attribute.ed">
      <optional>
         <attribute name="ed">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(edition) supplies a sigil or other arbitrary identifier for the source edition in which the associated feature (for example, a page, column, or line beginning) occurs at this point in the 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.edition.attribute.edRef">
      <optional>
         <attribute name="edRef">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(edition reference) provides a pointer to the source edition in which the associated feature (for example, a page, column, or line beginning) occurs at this point in the text.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <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.global.rendition.attributes">
      <ref name="att.global.rendition.attribute.rend"/>
      <ref name="att.global.rendition.attribute.style"/>
      <ref name="att.global.rendition.attribute.rendition"/>
   </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.rendition.attribute.style">
      <optional>
         <attribute name="style">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains an expression in some formal style definition language which defines the rendering or presentation used for this element in the source text.</a:documentation>
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="att.global.rendition.attribute.rendition">
      <optional>
         <attribute name="rendition">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(rendition reference) points to one or more renditions declared in the <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;tagsDecl&gt;</code>, each a CSS declaration of the typography of the original, e.g. #c (centred) or #uc (set in capitals).</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </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) points to whoever is responsible for a topic, a description or a note: the editor (#np) or Claude, an AI model (#claude), as the <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;titleStmt&gt;</code> declares them.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</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="welte-ads-att.global.source-source-only_1_ODD_source-constraint-rule-5">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:rng="http://relaxng.org/ns/structure/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                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
              &lt;<sch:value-of select="name(.)"/>&gt;), 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.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.measurement.attributes">
      <ref name="att.measurement.attribute.unit"/>
      <ref name="att.measurement.attribute.unitRef"/>
      <ref name="att.measurement.attribute.quantity"/>
      <ref name="att.measurement.attribute.commodity"/>
   </define>
   <define name="att.measurement.attribute.unit">
      <optional>
         <attribute name="unit">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(unit) indicates the units used for the measurement, usually using the standard symbol for the desired units.
Suggested values include: 1] m (metre); 2] kg (kilogram); 3] s (second); 4] Hz (hertz); 5] Pa (pascal); 6] Ω (ohm); 7] L (litre); 8] t (tonne); 9] ha (hectare); 10] Å (ångström); 11] mL (millilitre); 12] cm (centimetre); 13] dB (decibel); 14] kbit (kilobit); 15] Kibit (kibibit); 16] kB (kilobyte); 17] KiB (kibibyte); 18] MB (megabyte); 19] MiB (mebibyte)</a:documentation>
            <choice>
               <value>m</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(metre) SI base unit of length</a:documentation>
               <value>kg</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(kilogram) SI base unit of mass</a:documentation>
               <value>s</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(second) SI base unit of time</a:documentation>
               <value>Hz</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(hertz) SI unit of frequency</a:documentation>
               <value>Pa</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(pascal) SI unit of pressure or stress</a:documentation>
               <value>Ω</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(ohm) SI unit of electric resistance</a:documentation>
               <value>L</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(litre) 1 dm³</a:documentation>
               <value>t</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(tonne) 10³ kg</a:documentation>
               <value>ha</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(hectare) 1 hm²</a:documentation>
               <value>Å</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(ångström) 10⁻¹⁰ m</a:documentation>
               <value>mL</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(millilitre) </a:documentation>
               <value>cm</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(centimetre) </a:documentation>
               <value>dB</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(decibel) see remarks, below</a:documentation>
               <value>kbit</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(kilobit) 10³ or 1000 bits</a:documentation>
               <value>Kibit</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(kibibit) 2¹⁰ or 1024 bits</a:documentation>
               <value>kB</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(kilobyte) 10³ or 1000 bytes</a:documentation>
               <value>KiB</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(kibibyte) 2¹⁰ or 1024 bytes</a:documentation>
               <value>MB</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(megabyte) 10⁶ or 1 000 000 bytes</a:documentation>
               <value>MiB</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(mebibyte) 2²⁰ or 1 048 576 bytes</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.measurement.attribute.unitRef">
      <optional>
         <attribute name="unitRef">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to a unique identifier stored in the <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@xml:id</code> of a <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;unitDef&gt;</code> element that defines a unit of measure.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.measurement.attribute.quantity">
      <optional>
         <attribute name="quantity">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(quantity) specifies the number of the specified units that comprise the 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.measurement.attribute.commodity">
      <optional>
         <attribute name="commodity">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(commodity) indicates the substance that is being measured</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.pointing.attributes">
      <ref name="att.pointing.attribute.targetLang"/>
      <ref name="att.pointing.attribute.target"/>
      <ref name="att.pointing.attribute.evaluate"/>
   </define>
   <define name="att.pointing.attribute.targetLang">
      <optional>
         <attribute name="targetLang">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the language of the content to be found at the destination referenced by <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@target</code>, using a language 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>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="welte-ads-att.pointing-targetLang-targetLang-constraint-rule-6">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:rng="http://relaxng.org/ns/structure/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                context="tei:*[not(self::tei:schemaSpec)][@targetLang]">
         <sch:assert test="@target">@targetLang should only be used on &lt;<sch:name/>&gt; if @target is specified.</sch:assert>
      </sch:rule>
   </pattern>
   <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>
   <define name="att.pointing.attribute.evaluate">
      <optional>
         <attribute name="evaluate">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(evaluate) specifies the intended meaning when the target of a pointer is itself a pointer.</a:documentation>
            <choice>
               <value>all</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">if the element pointed to is itself a pointer, then the target of that pointer will be taken, and so on, until an element is found which is not a pointer.</a:documentation>
               <value>one</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">if the element pointed to is itself a pointer, then its target (whether a pointer or not) is taken as the target of this pointer.</a:documentation>
               <value>none</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">no further evaluation of targets is carried out beyond that needed to find the element specified in the pointer's target.</a:documentation>
            </choice>
         </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.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.scope.attributes">
      <ref name="att.scope.attribute.scope"/>
   </define>
   <define name="att.scope.attribute.scope">
      <optional>
         <attribute name="scope">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the scope of application of the element
Suggested values include: 1] sole; 2] major; 3] minor</a:documentation>
            <choice>
               <value>sole</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">only this particular feature is used throughout the document</a:documentation>
               <value>major</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">this feature is used through most of the document</a:documentation>
               <value>minor</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">this feature is used occasionally through the document</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.sortable.attributes">
      <ref name="att.sortable.attribute.sortKey"/>
   </define>
   <define name="att.sortable.attribute.sortKey">
      <optional>
         <attribute name="sortKey">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies the sort key for this element in an index, list or group which contains it.</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <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="welte-ads-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-7">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:rng="http://relaxng.org/ns/structure/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                context="tei:*[ starts-with( @spanTo, '#') ]">
         <sch:assert test="id( substring( @spanTo, 2 ) ) &gt;&gt; .">
              The element indicated by @spanTo (<sch:value-of select="@spanTo"/>) must follow the current &lt;<sch:name/>&gt; element.
            </sch:assert>
      </sch:rule>
   </pattern>
   <define name="att.styleDef.attribute.schemeVersion">
      <optional>
         <attribute name="schemeVersion">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a version number for the style language provided in <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@scheme</code>.</a:documentation>
            <data type="token">
               <param name="pattern">[\d]+[a-z]*[\d]*(\.[\d]+[a-z]*[\d]*){0,3}</param>
            </data>
         </attribute>
      </optional>
   </define>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="welte-ads-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-8">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:rng="http://relaxng.org/ns/structure/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                context="tei:*[@schemeVersion]">
         <sch:assert test="@scheme and not(@scheme eq 'free')">
              @schemeVersion can only be used if @scheme is specified.
            </sch:assert>
      </sch:rule>
   </pattern>
   <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="welte-ads-att.typed-subtypeTyped-constraint-rule-9">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:rng="http://relaxng.org/ns/structure/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                context="tei:*[@subtype]">
         <sch:assert test="@type">
          The &lt;<sch:name/>&gt; element should not be categorized in detail with @subtype unless also categorized in general with @type.
        </sch:assert>
      </sch:rule>
   </pattern>
   <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">points to a <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;handNote&gt;</code> element describing the hand considered responsible for the content of the element concerned.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </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.datable.attributes">
      <ref name="att.datable.custom.attributes"/>
      <ref name="att.datable.iso.attributes"/>
      <ref name="att.datable.w3c.attributes"/>
      <ref name="att.datable.attribute.period"/>
   </define>
   <define name="att.datable.attribute.period">
      <optional>
         <attribute name="period">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies pointers to one or more definitions of named periods of time (typically <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;category&gt;</code>s, <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;date&gt;</code>s, or <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;event&gt;</code>s) within which the datable item is understood to have occurred.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </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.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>parallel</value>
               <a:documentation>the contents of this element are intended to represent simultaneous or side-by-side delivery.</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.global.attributes">
      <ref name="att.global.analytic.attributes"/>
      <ref name="att.global.change.attributes"/>
      <ref name="att.global.facs.attributes"/>
      <ref name="att.global.linking.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"/>
      <ref name="att.global.attribute.xmlbase"/>
      <ref name="att.global.attribute.xmlspace"/>
   </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.global.attribute.xmlbase">
      <optional>
         <attribute name="xml:base">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a base URI reference with which applications can resolve relative URI references into absolute URI references.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.global.attribute.xmlspace">
      <optional>
         <attribute name="xml:space">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">signals an intention about how white space should be managed by applications.</a:documentation>
            <choice>
               <value>default</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">signals that the application's default white-space processing modes are acceptable</a:documentation>
               <value>preserve</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the intent that applications preserve all white space</a:documentation>
            </choice>
         </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.naming.attributes">
      <ref name="att.canonical.attributes"/>
      <ref name="att.naming.attribute.role"/>
      <ref name="att.naming.attribute.nymRef"/>
   </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.naming.attribute.nymRef">
      <optional>
         <attribute name="nymRef">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reference to the canonical name) provides a means of locating the canonical form (nym) of the names associated with the object named by the element bearing it.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.segLike.attributes">
      <ref name="att.datcat.attributes"/>
      <ref name="att.fragmentable.attributes"/>
      <ref name="att.segLike.attribute.function"/>
   </define>
   <define name="att.segLike.attribute.function">
      <optional>
         <attribute name="function">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(function) characterizes the function of the segment.</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.transcriptional.attributes">
      <ref name="att.editLike.attributes"/>
      <ref name="att.placement.attributes"/>
      <ref name="att.written.attributes"/>
      <ref name="att.transcriptional.attribute.status"/>
      <ref name="att.transcriptional.attribute.cause"/>
      <ref name="att.transcriptional.attribute.seq"/>
   </define>
   <define name="att.transcriptional.attribute.status">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="status"
                    a:defaultValue="unremarkable">
            <a:documentation>indicates the effect of the intervention, for example in the case of a deletion, strikeouts which include too much or too little text, or in the case of an addition, an insertion which duplicates some of the text already present.
Sample values include: 1] duplicate; 2] duplicate-partial; 3] excessStart; 4] excessEnd; 5] shortStart; 6] shortEnd; 7] partial; 8] unremarkable</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.transcriptional.attribute.cause">
      <optional>
         <attribute name="cause">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">documents the presumed cause for the intervention.</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.transcriptional.attribute.seq">
      <optional>
         <attribute name="seq">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(sequence) assigns a sequence number related to the order in which the encoded features carrying this attribute are believed to have occurred.</a:documentation>
            <data type="nonNegativeInteger"/>
         </attribute>
      </optional>
   </define>
   <define name="att.timed.attributes">
      <ref name="att.timed.attribute.start"/>
      <ref name="att.timed.attribute.end"/>
   </define>
   <define name="att.timed.attribute.start">
      <optional>
         <attribute name="start">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the location within a temporal alignment at which this element begins.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.timed.attribute.end">
      <optional>
         <attribute name="end">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the location within a temporal alignment at which this element ends.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="model.nameLike.agent">
      <choice>
         <ref name="name"/>
         <ref name="orgName"/>
         <ref name="persName"/>
      </choice>
   </define>
   <define name="model.nameLike.agent_alternation">
      <choice>
         <ref name="name"/>
         <ref name="orgName"/>
         <ref name="persName"/>
      </choice>
   </define>
   <define name="model.nameLike.agent_sequence">
      <ref name="name"/>
      <ref name="orgName"/>
      <ref name="persName"/>
   </define>
   <define name="model.nameLike.agent_sequenceOptional">
      <optional>
         <ref name="name"/>
      </optional>
      <optional>
         <ref name="orgName"/>
      </optional>
      <optional>
         <ref name="persName"/>
      </optional>
   </define>
   <define name="model.nameLike.agent_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="name"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="orgName"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="persName"/>
      </zeroOrMore>
   </define>
   <define name="model.nameLike.agent_sequenceRepeatable">
      <oneOrMore>
         <ref name="name"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="orgName"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="persName"/>
      </oneOrMore>
   </define>
   <define name="model.segLike">
      <choice>
         <ref name="seg"/>
      </choice>
   </define>
   <define name="model.segLike_alternation">
      <choice>
         <ref name="seg"/>
      </choice>
   </define>
   <define name="model.segLike_sequence">
      <ref name="seg"/>
   </define>
   <define name="model.segLike_sequenceOptional">
      <optional>
         <ref name="seg"/>
      </optional>
   </define>
   <define name="model.segLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="seg"/>
      </zeroOrMore>
   </define>
   <define name="model.segLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="seg"/>
      </oneOrMore>
   </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="foreign"/>
         <ref name="gloss"/>
         <ref name="title"/>
      </choice>
   </define>
   <define name="model.emphLike_alternation">
      <choice>
         <ref name="foreign"/>
         <ref name="gloss"/>
         <ref name="title"/>
      </choice>
   </define>
   <define name="model.emphLike_sequence">
      <ref name="foreign"/>
      <ref name="gloss"/>
      <ref name="title"/>
   </define>
   <define name="model.emphLike_sequenceOptional">
      <optional>
         <ref name="foreign"/>
      </optional>
      <optional>
         <ref name="gloss"/>
      </optional>
      <optional>
         <ref name="title"/>
      </optional>
   </define>
   <define name="model.emphLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="foreign"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="gloss"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="title"/>
      </zeroOrMore>
   </define>
   <define name="model.emphLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="foreign"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="gloss"/>
      </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">
      <choice>
         <ref name="num"/>
         <ref name="measure"/>
      </choice>
   </define>
   <define name="model.measureLike_alternation">
      <choice>
         <ref name="num"/>
         <ref name="measure"/>
      </choice>
   </define>
   <define name="model.measureLike_sequence">
      <ref name="num"/>
      <ref name="measure"/>
   </define>
   <define name="model.measureLike_sequenceOptional">
      <optional>
         <ref name="num"/>
      </optional>
      <optional>
         <ref name="measure"/>
      </optional>
   </define>
   <define name="model.measureLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="num"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="measure"/>
      </zeroOrMore>
   </define>
   <define name="model.measureLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="num"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="measure"/>
      </oneOrMore>
   </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">
      <choice>
         <ref name="sic"/>
         <ref name="del"/>
         <ref name="unclear"/>
      </choice>
   </define>
   <define name="model.pPart.transcriptional_alternation">
      <choice>
         <ref name="sic"/>
         <ref name="del"/>
         <ref name="unclear"/>
      </choice>
   </define>
   <define name="model.pPart.transcriptional_sequence">
      <ref name="sic"/>
      <ref name="del"/>
      <ref name="unclear"/>
   </define>
   <define name="model.pPart.transcriptional_sequenceOptional">
      <optional>
         <ref name="sic"/>
      </optional>
      <optional>
         <ref name="del"/>
      </optional>
      <optional>
         <ref name="unclear"/>
      </optional>
   </define>
   <define name="model.pPart.transcriptional_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="sic"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="del"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="unclear"/>
      </zeroOrMore>
   </define>
   <define name="model.pPart.transcriptional_sequenceRepeatable">
      <oneOrMore>
         <ref name="sic"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="del"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="unclear"/>
      </oneOrMore>
   </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.linePart">
      <choice>
         <ref name="model.hiLike"/>
         <ref name="del"/>
         <ref name="unclear"/>
         <ref name="zone"/>
         <ref name="seg"/>
      </choice>
   </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="pb"/>
         <ref name="lb"/>
         <ref name="cb"/>
      </choice>
   </define>
   <define name="model.milestoneLike_alternation">
      <choice>
         <ref name="pb"/>
         <ref name="lb"/>
         <ref name="cb"/>
      </choice>
   </define>
   <define name="model.milestoneLike_sequence">
      <ref name="pb"/>
      <ref name="lb"/>
      <ref name="cb"/>
   </define>
   <define name="model.milestoneLike_sequenceOptional">
      <optional>
         <ref name="pb"/>
      </optional>
      <optional>
         <ref name="lb"/>
      </optional>
      <optional>
         <ref name="cb"/>
      </optional>
   </define>
   <define name="model.milestoneLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="pb"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="lb"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="cb"/>
      </zeroOrMore>
   </define>
   <define name="model.milestoneLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="pb"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="lb"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="cb"/>
      </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">
      <choice>
         <ref name="att"/>
         <ref name="gi"/>
         <ref name="val"/>
      </choice>
   </define>
   <define name="model.phrase.xml_alternation">
      <choice>
         <ref name="att"/>
         <ref name="gi"/>
         <ref name="val"/>
      </choice>
   </define>
   <define name="model.phrase.xml_sequence">
      <ref name="att"/>
      <ref name="gi"/>
      <ref name="val"/>
   </define>
   <define name="model.phrase.xml_sequenceOptional">
      <optional>
         <ref name="att"/>
      </optional>
      <optional>
         <ref name="gi"/>
      </optional>
      <optional>
         <ref name="val"/>
      </optional>
   </define>
   <define name="model.phrase.xml_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="att"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="gi"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="val"/>
      </zeroOrMore>
   </define>
   <define name="model.phrase.xml_sequenceRepeatable">
      <oneOrMore>
         <ref name="att"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="gi"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="val"/>
      </oneOrMore>
   </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="biblFull"/>
         <ref name="msDesc"/>
      </choice>
   </define>
   <define name="model.biblLike_alternation">
      <choice>
         <ref name="bibl"/>
         <ref name="biblFull"/>
         <ref name="msDesc"/>
      </choice>
   </define>
   <define name="model.biblLike_sequence">
      <ref name="bibl"/>
      <ref name="biblFull"/>
      <ref name="msDesc"/>
   </define>
   <define name="model.biblLike_sequenceOptional">
      <optional>
         <ref name="bibl"/>
      </optional>
      <optional>
         <ref name="biblFull"/>
      </optional>
      <optional>
         <ref name="msDesc"/>
      </optional>
   </define>
   <define name="model.biblLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="bibl"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="biblFull"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="msDesc"/>
      </zeroOrMore>
   </define>
   <define name="model.biblLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="bibl"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="biblFull"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="msDesc"/>
      </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="desc"/>
      </choice>
   </define>
   <define name="model.labelLike_alternation">
      <choice>
         <ref name="desc"/>
      </choice>
   </define>
   <define name="model.labelLike_sequence">
      <ref name="desc"/>
   </define>
   <define name="model.labelLike_sequenceOptional">
      <optional>
         <ref name="desc"/>
      </optional>
   </define>
   <define name="model.labelLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="desc"/>
      </zeroOrMore>
   </define>
   <define name="model.labelLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="desc"/>
      </oneOrMore>
   </define>
   <define name="model.listLike">
      <choice>
         <ref name="list"/>
      </choice>
   </define>
   <define name="model.listLike_alternation">
      <choice>
         <ref name="list"/>
      </choice>
   </define>
   <define name="model.listLike_sequence">
      <ref name="list"/>
   </define>
   <define name="model.listLike_sequenceOptional">
      <optional>
         <ref name="list"/>
      </optional>
   </define>
   <define name="model.listLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="list"/>
      </zeroOrMore>
   </define>
   <define name="model.listLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="list"/>
      </oneOrMore>
   </define>
   <define name="model.noteLike">
      <choice>
         <ref name="note"/>
      </choice>
   </define>
   <define name="model.noteLike_alternation">
      <choice>
         <ref name="note"/>
      </choice>
   </define>
   <define name="model.noteLike_sequence">
      <ref name="note"/>
   </define>
   <define name="model.noteLike_sequenceOptional">
      <optional>
         <ref name="note"/>
      </optional>
   </define>
   <define name="model.noteLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="note"/>
      </zeroOrMore>
   </define>
   <define name="model.noteLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="note"/>
      </oneOrMore>
   </define>
   <define name="model.lLike">
      <choice>
         <ref name="l"/>
      </choice>
   </define>
   <define name="model.lLike_alternation">
      <choice>
         <ref name="l"/>
      </choice>
   </define>
   <define name="model.lLike_sequence">
      <ref name="l"/>
   </define>
   <define name="model.lLike_sequenceOptional">
      <optional>
         <ref name="l"/>
      </optional>
   </define>
   <define name="model.lLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="l"/>
      </zeroOrMore>
   </define>
   <define name="model.lLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="l"/>
      </oneOrMore>
   </define>
   <define name="model.pLike">
      <choice>
         <ref name="p"/>
         <ref name="ab"/>
      </choice>
   </define>
   <define name="model.pLike_alternation">
      <choice>
         <ref name="p"/>
         <ref name="ab"/>
      </choice>
   </define>
   <define name="model.pLike_sequence">
      <ref name="p"/>
      <ref name="ab"/>
   </define>
   <define name="model.pLike_sequenceOptional">
      <optional>
         <ref name="p"/>
      </optional>
      <optional>
         <ref name="ab"/>
      </optional>
   </define>
   <define name="model.pLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="p"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="ab"/>
      </zeroOrMore>
   </define>
   <define name="model.pLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="p"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="ab"/>
      </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">
      <choice>
         <ref name="gap"/>
         <ref name="space"/>
         <ref name="app"/>
      </choice>
   </define>
   <define name="model.global.edit_alternation">
      <choice>
         <ref name="gap"/>
         <ref name="space"/>
         <ref name="app"/>
      </choice>
   </define>
   <define name="model.global.edit_sequence">
      <ref name="gap"/>
      <ref name="space"/>
      <ref name="app"/>
   </define>
   <define name="model.global.edit_sequenceOptional">
      <optional>
         <ref name="gap"/>
      </optional>
      <optional>
         <ref name="space"/>
      </optional>
      <optional>
         <ref name="app"/>
      </optional>
   </define>
   <define name="model.global.edit_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="gap"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="space"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="app"/>
      </zeroOrMore>
   </define>
   <define name="model.global.edit_sequenceRepeatable">
      <oneOrMore>
         <ref name="gap"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="space"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="app"/>
      </oneOrMore>
   </define>
   <define name="model.divPart">
      <choice>
         <ref name="model.lLike"/>
         <ref name="model.pLike"/>
         <ref name="lg"/>
      </choice>
   </define>
   <define name="model.placeNamePart">
      <choice>
         <ref name="placeName"/>
      </choice>
   </define>
   <define name="model.placeNamePart_alternation">
      <choice>
         <ref name="placeName"/>
      </choice>
   </define>
   <define name="model.placeNamePart_sequence">
      <ref name="placeName"/>
   </define>
   <define name="model.placeNamePart_sequenceOptional">
      <optional>
         <ref name="placeName"/>
      </optional>
   </define>
   <define name="model.placeNamePart_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="placeName"/>
      </zeroOrMore>
   </define>
   <define name="model.placeNamePart_sequenceRepeatable">
      <oneOrMore>
         <ref name="placeName"/>
      </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.publicationStmtPart.agency">
      <choice>
         <ref name="publisher"/>
      </choice>
   </define>
   <define name="model.publicationStmtPart.detail">
      <choice>
         <ref name="model.ptrLike"/>
         <ref name="address"/>
         <ref name="date"/>
         <ref name="pubPlace"/>
         <ref name="idno"/>
         <ref name="availability"/>
      </choice>
   </define>
   <define name="model.availabilityPart">
      <choice>
         <ref name="licence"/>
      </choice>
   </define>
   <define name="model.certLike">
      <notAllowed/>
   </define>
   <define name="model.descLike">
      <choice>
         <ref name="desc"/>
      </choice>
   </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="respStmt"/>
      </choice>
   </define>
   <define name="model.divWrapper">
      <notAllowed/>
   </define>
   <define name="model.divTopPart">
      <choice>
         <ref name="model.headLike"/>
         <ref name="address"/>
         <ref name="signed"/>
      </choice>
   </define>
   <define name="model.divTop">
      <choice>
         <ref name="model.divWrapper"/>
         <ref name="model.divTopPart"/>
      </choice>
   </define>
   <define name="model.divBottomPart">
      <choice>
         <ref name="address"/>
         <ref name="signed"/>
      </choice>
   </define>
   <define name="model.divBottom">
      <choice>
         <ref name="model.divWrapper"/>
         <ref name="model.divBottomPart"/>
      </choice>
   </define>
   <define name="model.imprintPart">
      <choice>
         <ref name="publisher"/>
         <ref name="biblScope"/>
         <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="idno"/>
         <ref name="model.persNamePart"/>
      </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="idno"/>
         <ref name="model.persNamePart_alternation"/>
      </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="idno"/>
      <ref name="model.persNamePart_sequence"/>
   </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="idno"/>
      </optional>
      <optional>
         <ref name="model.persNamePart_sequenceOptional"/>
      </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="idno"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="model.persNamePart_sequenceOptionalRepeatable"/>
      </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="idno"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="model.persNamePart_sequenceRepeatable"/>
      </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="availability"/>
         <ref name="msIdentifier"/>
      </choice>
   </define>
   <define name="model.addrPart">
      <choice>
         <ref name="model.nameLike"/>
         <ref name="addrLine"/>
      </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"/>
         <ref name="lg"/>
      </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">
      <notAllowed/>
   </define>
   <define name="model.div1Like">
      <notAllowed/>
   </define>
   <define name="model.teiHeaderPart">
      <choice>
         <ref name="encodingDesc"/>
         <ref name="profileDesc"/>
      </choice>
   </define>
   <define name="model.sourceDescPart">
      <notAllowed/>
   </define>
   <define name="model.encodingDescPart">
      <choice>
         <ref name="schemaRef"/>
         <ref name="projectDesc"/>
         <ref name="samplingDecl"/>
         <ref name="editorialDecl"/>
         <ref name="tagsDecl"/>
         <ref name="classDecl"/>
      </choice>
   </define>
   <define name="model.editorialDeclPart">
      <choice>
         <ref name="correction"/>
         <ref name="normalization"/>
         <ref name="hyphenation"/>
         <ref name="segmentation"/>
         <ref name="stdVals"/>
         <ref name="interpretation"/>
      </choice>
   </define>
   <define name="model.profileDescPart">
      <choice>
         <ref name="langUsage"/>
      </choice>
   </define>
   <define name="model.resource">
      <choice>
         <ref name="text"/>
         <ref name="facsimile"/>
      </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 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>
   </define>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="welte-ads-att.calendarSystem-calendar-calendar_attr_on_empty_element-constraint-rule-10">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:rng="http://relaxng.org/ns/structure/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                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 &lt;<sch:name/>&gt; 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.6. 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="welte-ads-p-abstractModel-structure-p-in-ab-or-p-constraint-rule-11">
            <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      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 &lt;ab&gt; elements.
        </sch:report>
            </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0"
                  id="welte-ads-p-abstractModel-structure-p-in-l-constraint-rule-12">
            <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      context="tei:l//tei:p">
               <sch:assert test="ancestor::tei:floatingText | parent::tei:figure | parent::tei:note">
          Abstract model violation: Metrical lines (&lt;l&gt; elements) may not contain higher-level structural elements such as &lt;div&gt;, &lt;p&gt;, or &lt;ab&gt;, unless &lt;p&gt; is a child of &lt;figure&gt; or &lt;note&gt;, or is a descendant of &lt;floatingText&gt;.
        </sch:assert>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.fragmentable.attributes"/>
         <ref name="att.written.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="foreign">
      <element name="foreign">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(foreign) identifies a word or phrase as belonging to some language other than that of the surrounding text. [3.3.2.1. Foreign Words or Expressions]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.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.cmc.attributes"/>
         <ref name="att.written.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.cmc.attributes"/>
         <ref name="att.msExcerpt.attributes"/>
         <ref name="att.notated.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <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>testimonial</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a testimonial of an artist or of another witness</a:documentation>
               </choice>
            </attribute>
         </optional>
         <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"/>
         <ref name="att.typed.attribute.subtype"/>
         <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="desc">
      <element name="desc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(description) contains a short description of the purpose, function, or use of its parent element, or when the parent is a documentation element, describes or defines the object being documented.  [23.4.1. Description of Components]</a:documentation>
         <ref name="macro.limitedContent"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0"
                  id="welte-ads-desc-deprecationInfo-only-in-deprecated-constraint-rule-13">
            <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      context="tei:desc[ @type eq 'deprecationInfo']">
               <sch:assert test="../@validUntil">Information about a
        deprecation should only be present in a specification element
        that is being deprecated: that is, only an element that has a
        @validUntil attribute should have a child &lt;desc
        type="deprecationInfo"&gt;.</sch:assert>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.translatable.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <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.
Suggested values include: 1] deprecationInfo (deprecation information)</a:documentation>
               <choice>
                  <value>deprecationInfo</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(deprecation information) This element describes why or how its parent element is being deprecated, typically including recommendations for alternate encoding.</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="gloss">
      <element name="gloss">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(gloss) identifies a phrase or word used to provide a gloss or definition for some other word or phrase. [3.4.1. Terms and Glosses 23.4.1. Description of Components]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.cReferencing.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.translatable.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="sic">
      <element name="sic">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Latin for thus or so) contains text reproduced although apparently incorrect or inaccurate. [3.5.1. Apparent Errors]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="gap">
      <element name="gap">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(gap) marks a part of the advertisement that is not transcribed: one that concerns other products than the Welte-Mignon, which a <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;desc&gt;</code> describes briefly, or one that cannot be read. [3.5.3. Additions, Deletions, and Omissions]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="model.descLike"/>
               <ref name="model.certLike"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.timed.attributes"/>
         <optional>
            <attribute name="reason">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reason) gives the reason for omission.</a:documentation>
               <list>
                  <oneOrMore>
                     <choice>
                        <value>irrelevant</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">concerns other products than the Welte-Mignon</a:documentation>
                        <value>illegible</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">cannot be read on the scan</a:documentation>
                     </choice>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="agent">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(agent) in the case of text omitted because of damage, categorizes the cause of the damage, if it can be identified.
Sample values include: 1] rubbing (rubbing); 2] mildew (mildew); 3] smoke (smoke)</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="del">
      <element name="del">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(deletion) contains a letter, word, or passage deleted, marked as deleted, or otherwise indicated as superfluous or spurious in the copy text by an author, scribe, or a previous annotator or corrector. [3.5.3. Additions, Deletions, and Omissions]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <ref name="att.transcriptional.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="unclear">
      <element name="unclear">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(unclear) contains a word, phrase, or passage which cannot be transcribed with certainty because it is illegible or inaudible in the source. [12.3.3.1. Damage, Illegibility, and Supplied Text 3.5.3. Additions, Deletions, and Omissions]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <ref name="att.editLike.attributes"/>
         <optional>
            <attribute name="reason">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates why the material is hard to transcribe.
Suggested values include: 1] illegible (illegible); 2] inaudible (inaudible); 3] faded (faded); 4] background_noise (background noise); 5] eccentric_ductus (eccentric ductus)</a:documentation>
               <list>
                  <oneOrMore>
                     <choice>
                        <value>illegible</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(illegible) </a:documentation>
                        <value>inaudible</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(inaudible) </a:documentation>
                        <value>faded</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(faded) </a:documentation>
                        <value>background_noise</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(background noise) </a:documentation>
                        <value>eccentric_ductus</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(eccentric ductus) indicates illegibility due to an unusual, awkward, or incompetent execution of a glyph or glyphs </a:documentation>
                        <data type="token">
                           <param name="pattern">[^\p{C}\p{Z}]+</param>
                        </data>
                     </choice>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="agent">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Where the difficulty in transcription arises from damage, categorizes the cause of the damage, if it can be identified.
Sample values include: 1] rubbing; 2] mildew; 3] smoke</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <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.cmc.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.personal.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <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>brand</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a brand name, e.g. Welte-Mignon</a:documentation>
               </choice>
            </attribute>
         </optional>
         <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.canonical.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes the address in some sense, using any convenient classification scheme or typology.
Suggested values include: 1] billing; 2] delivery; 3] mailing; 4] military; 5] physical</a:documentation>
               <choice>
                  <value>billing</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the address to which a bill for goods or services should be sent.</a:documentation>
                  <value>delivery</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the address to which packages should be sent via a private delivery service.</a:documentation>
                  <value>mailing</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the address to which mail should be sent via a public postal service.</a:documentation>
                  <value>military</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the address to which mail to deployed military personnel should be sent.</a:documentation>
                  <value>physical</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the address of a building irrespective of where mail to its occupants should be sent (for example, for the fire department).</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="role">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies further information about the purpose of the address.
Sample values include: 1] sender; 2] return; 3] recipient ; 4] work; 5] home; 6] start; 7] finish; 8] pickup; 9] dropOff</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="token">
                        <param name="pattern">[^\p{C}\p{Z}]+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="addrLine">
      <element name="addrLine">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(address line) contains one line of a postal address. [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>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="num">
      <element name="num">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(number) contains a number, written in any form. [3.6.3. Numbers and
Measures]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.ranging.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the type of numeric value.
Suggested values include: 1] cardinal; 2] ordinal; 3] fraction; 4] percentage</a:documentation>
               <choice>
                  <value>cardinal</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">absolute number, e.g. 21, 21.5</a:documentation>
                  <value>ordinal</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">ordinal number, e.g. 21st</a:documentation>
                  <value>fraction</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">fraction, e.g. one half or three-quarters</a:documentation>
                  <value>percentage</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a percentage</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="value">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies the value of the number in standard form.</a:documentation>
               <choice>
                  <data type="double"/>
                  <data type="token">
                     <param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
                  </data>
                  <data type="decimal"/>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="measure">
      <element name="measure">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(measure) contains a word or phrase referring to some quantity of an object or commodity, usually comprising a number, a unit, and a commodity name. [3.6.3. Numbers and
Measures]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.measurement.attributes"/>
         <ref name="att.ranging.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the type of measurement in any convenient typology.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <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.calendarSystem.attributes"/>
         <ref name="att.canonical.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <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>publication</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the date of the issue in which the printing appeared, as precisely as it is known</a:documentation>
               </choice>
            </attribute>
         </optional>
         <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="welte-ads-ref-refAtts-constraint-rule-14">
            <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      context="tei:ref">
               <sch:report test="@target and @cRef">Only one of the attributes @target and @cRef may be supplied on &lt;<sch:name/>&gt;.</sch:report>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.cReferencing.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.internetMedia.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.typed.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"/>
                  <zeroOrMore>
                     <ref name="desc"/>
                  </zeroOrMore>
               </choice>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="item"/>
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
               </oneOrMore>
               <oneOrMore>
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
                  <ref name="item"/>
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
               </oneOrMore>
            </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="welte-ads-list-gloss-list-must-have-labels-constraint-rule-15">
            <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      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 &lt;label&gt; element followed by an
          &lt;item&gt; element.
        </sch:assert>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.sortable.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <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">&lt;label&gt;</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"/>
         <ref name="att.sortable.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="lg"/>
               <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.cmc.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.written.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.anchoring.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.written.attributes"/>
         <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.cmc.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.media.attributes"/>
         <ref name="att.resourced.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <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>IIIF</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the page as the holding library serves it through IIIF; the first <code xmlns="http://www.w3.org/1999/xhtml"
                           xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;graphic&gt;</code> of a <code xmlns="http://www.w3.org/1999/xhtml"
                           xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;surface&gt;</code>, which has no type, is the scan on which the zones were drawn</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="pb">
      <element name="pb">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(page beginning) marks the beginning of a new page in a paginated document. [3.11.3. Milestone
Elements]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.breaking.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.edition.attributes"/>
         <ref name="att.spanning.attributes"/>
         <ref name="att.typed.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 topographic line in some edition or version of a text. [3.11.3. Milestone
Elements 7.2.6. Speech Contents]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.breaking.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.edition.attributes"/>
         <ref name="att.spanning.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="cb">
      <element name="cb">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(column beginning) marks the beginning of a new column of a text on a multi-column page. [3.11.3. Milestone
Elements]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.breaking.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.edition.attributes"/>
         <ref name="att.spanning.attributes"/>
         <ref name="att.typed.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.datable.attributes"/>
         <ref name="att.naming.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="respStmt">
      <element name="respStmt">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(statement of responsibility) supplies a statement of responsibility for the intellectual content of a text, edition, recording, or series, where the specialized elements for authors, editors, etc. do not suffice or do not apply. May also be used to encode information about individuals or organizations which have played a role in the production or distribution of a bibliographic work. [3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement 2.2.2. The Edition Statement 2.2.5. The Series Statement]</a:documentation>
         <group>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="resp"/>
                  </oneOrMore>
                  <oneOrMore>
                     <ref name="model.nameLike.agent"/>
                  </oneOrMore>
               </group>
               <group>
                  <oneOrMore>
                     <ref name="model.nameLike.agent"/>
                  </oneOrMore>
                  <oneOrMore>
                     <ref name="resp"/>
                  </oneOrMore>
               </group>
            </choice>
            <zeroOrMore>
               <ref name="note"/>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.canonical.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="resp">
      <element name="resp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(responsibility) contains a phrase describing the nature of a person's intellectual responsibility, or an organization's role in the production or distribution of a work. [3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement 2.2.2. The Edition Statement 2.2.5. The Series Statement]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <ref name="att.global.attributes"/>
         <ref name="att.canonical.attributes"/>
         <ref name="att.datable.attributes"/>
         <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.canonical.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.datable.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 according to some convenient typology.</a:documentation>
               <choice>
                  <value>main</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the main title: of the file, or of the advertisement or the periodical in a source</a:documentation>
                  <value>sub</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the subtitle of the file: when the advertisement appeared</a:documentation>
               </choice>
            </attribute>
         </optional>
         <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>m</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the title of the advertisement, in a source</a:documentation>
                  <value>j</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the title of the periodical in which it appeared</a:documentation>
               </choice>
            </attribute>
         </optional>
         <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="biblScope">
      <element name="biblScope">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(scope of bibliographic reference) defines the scope of a bibliographic reference, for example as a list of page numbers, or a named subdivision of a larger work. [3.12.2.5. Scopes and Ranges in Bibliographic Citations]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.citing.attribute.from"/>
         <ref name="att.citing.attribute.to"/>
         <optional>
            <attribute name="unit">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the unit of information conveyed by the element.</a:documentation>
               <choice>
                  <value>issue</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the issue of the periodical, as it names itself</a:documentation>
                  <value>pages</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the page or pages of the issue on which the advertisement appeared</a:documentation>
               </choice>
            </attribute>
         </optional>
         <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.attribute.role"/>
         <ref name="att.naming.attribute.nymRef"/>
         <ref name="att.canonical.attribute.key"/>
         <optional>
            <attribute name="ref">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reference) the GeoNames URI of the place where the periodical appeared, e.g. https://www.geonames.org/2643743 (London).</a:documentation>
               <data type="anyURI">
                  <param name="pattern">https://www\.geonames\.org/[0-9]+</param>
               </data>
            </attribute>
         </optional>
         <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.canonical.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.declarable.attributes"/>
         <ref name="att.docStatus.attributes"/>
         <ref name="att.sortable.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="l">
      <element name="l">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(verse line) contains a single, possibly incomplete, line of verse. [3.13.1. Core Tags for Verse 3.13. Passages of Verse or Drama 7.2.6. Speech Contents]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.phrase"/>
               <ref name="model.inter"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0"
                  id="welte-ads-l-abstractModel-structure-l-in-l-constraint-rule-16">
            <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      context="tei:l">
               <sch:report test="ancestor::tei:l[not(.//tei:note//tei:l[. = current()])]">Abstract model violation: Metrical lines (&lt;l&gt; elements) may not contain &lt;l&gt; or &lt;lg&gt; elements.</sch:report>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.fragmentable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="lg">
      <element name="lg">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(line group) contains one or more verse lines functioning as a formal unit, e.g. a stanza, refrain, verse paragraph, etc. [3.13.1. Core Tags for Verse 3.13. Passages of Verse or Drama 7.2.6. Speech Contents]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.divTop"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
            <choice>
               <ref name="model.lLike"/>
               <ref name="model.stageLike"/>
               <ref name="model.labelLike"/>
               <ref name="model.pPart.transcriptional"/>
               <ref name="lg"/>
            </choice>
            <zeroOrMore>
               <choice>
                  <ref name="model.lLike"/>
                  <ref name="model.stageLike"/>
                  <ref name="model.labelLike"/>
                  <ref name="model.pPart.transcriptional"/>
                  <ref name="model.global"/>
                  <ref name="lg"/>
               </choice>
            </zeroOrMore>
            <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="welte-ads-lg-atleast1oflggapl-constraint-rule-17">
            <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      context="tei:lg">
               <sch:assert test="count(descendant::tei:lg|descendant::tei:l|descendant::tei:gap) &gt; 0">An &lt;lg&gt; element must contain at least one child &lt;l&gt;, &lt;lg&gt;, or &lt;gap&gt; element.</sch:assert>
            </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0"
                  id="welte-ads-lg-abstractModel-structure-lg-in-l-constraint-rule-18">
            <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      context="tei:lg">
               <sch:report test="ancestor::tei:l[not(.//tei:note//tei:lg[. = current()])]">Abstract model violation: Lines may not contain line groups.</sch:report>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.divLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <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>
            <optional>
               <ref name="revisionDesc"/>
            </optional>
         </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>
            <group>
               <ref name="titleStmt"/>
               <ref name="publicationStmt"/>
               <zeroOrMore>
                  <ref name="seriesStmt"/>
               </zeroOrMore>
               <optional>
                  <ref name="notesStmt"/>
               </optional>
            </group>
            <oneOrMore>
               <ref name="sourceDesc"/>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </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="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>
         <choice>
            <oneOrMore>
               <ref name="model.publicationStmtPart.agency"/>
               <zeroOrMore>
                  <ref name="model.publicationStmtPart.detail"/>
               </zeroOrMore>
            </oneOrMore>
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="idno">
      <element name="idno">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(identifier) supplies any form of identifier used to identify some object, such as a bibliographic item, a person, a title, an organization, etc. in a standardized way. [14.3.1. Basic Principles 2.2.4. Publication, Distribution, Licensing, etc. 2.2.5. The Series Statement 3.12.2.4. Imprint, Size of a Document, and Reprint Information]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="idno"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.sortable.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">categorizes the identifier, for example as an ISBN, Social Security number, etc.</a:documentation>
               <choice>
                  <value>URLImages</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the URL at which the digital collection shows the scan of the page</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </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>
            <choice>
               <ref name="model.availabilityPart"/>
               <ref name="model.pLike"/>
            </choice>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <optional>
            <attribute name="status">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(status) supplies a code identifying the current availability of the text.</a:documentation>
               <choice>
                  <value>free</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(free) the text is freely available.</a:documentation>
                  <value>unknown</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(unknown) the status of the text is unknown.</a:documentation>
                  <value>restricted</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(restricted) the text is not freely available.</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </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"/>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.pointing.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="seriesStmt">
      <element name="seriesStmt">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(series statement) groups information about the series, if any, to which a publication belongs. [2.2.5. The Series Statement 2.2. The File Description]</a:documentation>
         <choice>
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
            <group>
               <oneOrMore>
                  <ref name="title"/>
               </oneOrMore>
               <zeroOrMore>
                  <choice>
                     <ref name="respStmt"/>
                  </choice>
               </zeroOrMore>
               <zeroOrMore>
                  <choice>
                     <ref name="idno"/>
                     <ref name="biblScope"/>
                  </choice>
               </zeroOrMore>
            </group>
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.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="model.noteLike"/>
            </choice>
         </oneOrMore>
         <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 one printing of the advertisement: its title (<code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;bibl&gt;</code>), the periodical and the issue in which it appeared (<code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;biblFull&gt;</code>) and the scan of the page (<code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;msDesc&gt;</code>). A file has a <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;sourceDesc&gt;</code> for every printing found; <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">@decls</code> on <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;text&gt;</code> points to the one that it transcribes. [2.2.7. The Source Description]</a:documentation>
         <choice>
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
            <oneOrMore>
               <choice>
                  <ref name="model.biblLike"/>
                  <ref name="model.sourceDescPart"/>
                  <ref name="model.listLike"/>
               </choice>
            </oneOrMore>
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="biblFull">
      <element name="biblFull">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(fully-structured bibliographic citation) contains a fully-structured bibliographic citation, in which all components of the TEI file description are present. [3.12.1. Methods of Encoding Bibliographic References and Lists of References 2.2. The File Description 2.2.7. The Source Description 16.3.2. Declarable Elements]</a:documentation>
         <choice>
            <group>
               <group>
                  <ref name="titleStmt"/>
                  <ref name="publicationStmt"/>
                  <zeroOrMore>
                     <ref name="seriesStmt"/>
                  </zeroOrMore>
                  <optional>
                     <ref name="notesStmt"/>
                  </optional>
               </group>
               <zeroOrMore>
                  <ref name="sourceDesc"/>
               </zeroOrMore>
            </group>
            <group>
               <ref name="fileDesc"/>
               <ref name="profileDesc"/>
            </group>
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.canonical.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.declarable.attributes"/>
         <ref name="att.docStatus.attributes"/>
         <ref name="att.sortable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="encodingDesc">
      <element name="encodingDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(encoding description) documents the relationship between an electronic text and the source or sources from which it was derived. [2.3. The Encoding Description 2.1.1. The TEI Header and Its Components]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="model.encodingDescPart"/>
               <ref name="model.pLike"/>
            </choice>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="schemaRef">
      <element name="schemaRef">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(schema reference) describes or points to a related customization or schema file. [2.3.10. The Schema Specification]</a:documentation>
         <optional>
            <ref name="model.descLike"/>
         </optional>
         <ref name="att.global.attributes"/>
         <ref name="att.resourced.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="key">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the identifier used for the customization or schema.</a:documentation>
               <data type="NCName"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="projectDesc">
      <element name="projectDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(project description) describes in detail the aim or purpose for which an electronic file was encoded, together with any other relevant information concerning the process by which it was assembled or collected. [2.3.1. The Project Description 2.3. The Encoding Description 16.3.2. Declarable Elements]</a:documentation>
         <oneOrMore>
            <ref name="model.pLike"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="samplingDecl">
      <element name="samplingDecl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(sampling declaration) contains a prose description of the rationale and methods used in selecting texts, or parts of a text, for inclusion in the resource. [2.3.2. The Sampling Declaration 2.3. The Encoding Description 16.3.2. Declarable Elements]</a:documentation>
         <oneOrMore>
            <ref name="model.pLike"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="editorialDecl">
      <element name="editorialDecl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(editorial practice declaration) provides details of editorial principles and practices applied during the encoding of a text. [2.3.3. The Editorial Practices Declaration 2.3. The Encoding Description 16.3.2. Declarable Elements]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="model.pLike"/>
               <ref name="model.editorialDeclPart"/>
            </choice>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="correction">
      <element name="correction">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(correction principles) states how and under what circumstances corrections have been made in the text. [2.3.3. The Editorial Practices Declaration 16.3.2. Declarable Elements]</a:documentation>
         <oneOrMore>
            <ref name="model.pLike"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <optional>
            <attribute name="status">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the degree of correction applied to the text.</a:documentation>
               <choice>
                  <value>high</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the text has been thoroughly checked and proofread.</a:documentation>
                  <value>medium</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the text has been checked at least once.</a:documentation>
                  <value>low</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the text has not been checked.</a:documentation>
                  <value>unknown</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the correction status of the text is unknown.</a:documentation>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="method"
                       a:defaultValue="silent">
               <a:documentation>indicates the method adopted to indicate corrections within the text.</a:documentation>
               <choice>
                  <value>silent</value>
                  <a:documentation>corrections have been made silently</a:documentation>
                  <value>markup</value>
                  <a:documentation>corrections have been represented using markup</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="normalization">
      <element name="normalization">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(normalization) indicates the extent of normalization or regularization of the original source carried out in converting it to electronic form. [2.3.3. The Editorial Practices Declaration 16.3.2. Declarable Elements]</a:documentation>
         <oneOrMore>
            <ref name="model.pLike"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="method"
                       a:defaultValue="silent">
               <a:documentation>indicates the method adopted to indicate normalizations within the text.</a:documentation>
               <choice>
                  <value>silent</value>
                  <a:documentation>normalization made silently</a:documentation>
                  <value>markup</value>
                  <a:documentation>normalization represented using markup</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="hyphenation">
      <element name="hyphenation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(hyphenation) summarizes the way in which hyphenation in a source text has been treated in an encoded version of it. [2.3.3. The Editorial Practices Declaration 16.3.2. Declarable Elements]</a:documentation>
         <oneOrMore>
            <ref name="model.pLike"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="eol"
                       a:defaultValue="some">
               <a:documentation>(end-of-line) indicates whether or not end-of-line hyphenation has been retained in a text.</a:documentation>
               <choice>
                  <value>all</value>
                  <a:documentation>all end-of-line hyphenation has been retained, even though the lineation of the original may not have been.</a:documentation>
                  <value>some</value>
                  <a:documentation>end-of-line hyphenation has been retained in some cases.</a:documentation>
                  <value>hard</value>
                  <a:documentation>all soft end-of-line hyphenation has been removed: any remaining end-of-line hyphenation should be retained.</a:documentation>
                  <value>none</value>
                  <a:documentation>all end-of-line hyphenation has been removed: any remaining hyphenation occurred within the line.</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="segmentation">
      <element name="segmentation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(segmentation) describes the principles according to which the text has been segmented, for example into sentences, tone-units, graphemic strata, etc. [2.3.3. The Editorial Practices Declaration 16.3.2. Declarable Elements]</a:documentation>
         <oneOrMore>
            <ref name="model.pLike"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="stdVals">
      <element name="stdVals">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(standard values) specifies the format used when standardized date or number values are supplied. [2.3.3. The Editorial Practices Declaration 16.3.2. Declarable Elements]</a:documentation>
         <oneOrMore>
            <ref name="model.pLike"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="interpretation">
      <element name="interpretation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(interpretation) describes the scope of any analytic or interpretive information added to the text in addition to the transcription. [2.3.3. The Editorial Practices Declaration]</a:documentation>
         <oneOrMore>
            <ref name="model.pLike"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="tagsDecl">
      <element name="tagsDecl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(tagging declaration) provides detailed information about the tagging applied to a document. [2.3.4. The Tagging Declaration 2.3. The Encoding Description]</a:documentation>
         <zeroOrMore>
            <ref name="rendition"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="partial">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates whether the element types listed exhaustively include all those found within <code xmlns="http://www.w3.org/1999/xhtml"
                        xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;text&gt;</code>, or represent only a subset.</a:documentation>
               <data type="boolean"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="rendition">
      <element name="rendition">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(rendition) supplies information about the rendition or appearance of one or more elements in the source text. [2.3.4. The Tagging Declaration]</a:documentation>
         <ref name="macro.limitedContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.styleDef.attribute.schemeVersion"/>
         <optional>
            <attribute name="scheme">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the language used to describe the rendition.</a:documentation>
               <choice>
                  <value>css</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">every rendition is a CSS declaration</a:documentation>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="scope">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">where CSS is used, provides a way of defining pseudo-elements, that is, styling rules applicable to specific sub-portions of an element.
Sample values include: 1] first-line; 2] first-letter; 3] before; 4] after</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="selector">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a selector or series of selectors specifying the elements to which the contained style description applies, expressed in the language specified in the <code xmlns="http://www.w3.org/1999/xhtml"
                        xmlns:rng="http://relaxng.org/ns/structure/1.0">@scheme</code> attribute.</a:documentation>
               <data type="string"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="classDecl">
      <element name="classDecl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(classification declarations) contains one or more taxonomies defining any classificatory codes used elsewhere in the text. [2.3.7. The Classification Declaration 2.3. The Encoding Description]</a:documentation>
         <oneOrMore>
            <ref name="taxonomy"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="taxonomy">
      <element name="taxonomy">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(taxonomy) defines a typology either implicitly, by means of a bibliographic citation, or explicitly by a structured taxonomy. [2.3.7. The Classification Declaration]</a:documentation>
         <choice>
            <choice>
               <oneOrMore>
                  <choice>
                     <ref name="category"/>
                     <ref name="taxonomy"/>
                  </choice>
               </oneOrMore>
               <group>
                  <oneOrMore>
                     <choice>
                        <ref name="model.descLike"/>
                        <ref name="gloss"/>
                     </choice>
                  </oneOrMore>
                  <zeroOrMore>
                     <choice>
                        <ref name="category"/>
                        <ref name="taxonomy"/>
                     </choice>
                  </zeroOrMore>
               </group>
            </choice>
            <group>
               <ref name="model.biblLike"/>
               <zeroOrMore>
                  <choice>
                     <ref name="category"/>
                     <ref name="taxonomy"/>
                  </choice>
               </zeroOrMore>
            </group>
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.datcat.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="category">
      <element name="category">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(category) contains an individual descriptive category, possibly nested within a superordinate category, within a user-defined taxonomy. [2.3.7. The Classification Declaration]</a:documentation>
         <group>
            <choice>
               <zeroOrMore>
                  <choice>
                     <ref name="model.descLike"/>
                     <ref name="gloss"/>
                  </choice>
               </zeroOrMore>
            </choice>
            <zeroOrMore>
               <ref name="category"/>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.datcat.attributes"/>
         <empty/>
      </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>
         <zeroOrMore>
            <ref name="model.profileDescPart"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="langUsage">
      <element name="langUsage">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(language usage) describes the languages, sublanguages, registers, dialects, etc. represented within a text. [2.4.2. Language Usage 2.4. The Profile Description 16.3.2. Declarable Elements]</a:documentation>
         <choice>
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="language"/>
            </oneOrMore>
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="language">
      <element name="language">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(language) characterizes a single language or sublanguage used within a text. [2.4.2. Language Usage]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <ref name="att.global.attributes"/>
         <ref name="att.scope.attributes"/>
         <attribute name="ident">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(identifier) Supplies a language code constructed as defined in <a xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0"
                  href="https://tools.ietf.org/html/bcp47">BCP 47</a> which is used to identify the language documented by this element, and which may be referenced by the global <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@xml:lang</code> attribute.</a:documentation>
            <choice>
               <data type="language"/>
               <choice>
                  <value/>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               </choice>
            </choice>
         </attribute>
         <optional>
            <attribute name="usage">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the approximate percentage of the text which uses this language.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="revisionDesc">
      <element name="revisionDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(revision description) summarizes the revision history for a file. [2.6. The Revision Description 2.1.1. The TEI Header and Its Components]</a:documentation>
         <choice>
            <oneOrMore>
               <ref name="list"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="change"/>
            </oneOrMore>
         </choice>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="status">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">says whether the editor has checked the transcription and the encoding against the scan.</a:documentation>
               <choice>
                  <value>checked</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">checked by the editor</a:documentation>
                  <value>unchecked</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">not yet checked by the editor, e.g. an advertisement transcribed and encoded by Claude</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="change">
      <element name="change">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(change) documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 12.7. Identifying Changes and Revisions]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.ascribed.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.docStatus.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="target">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(target) points to one or more elements that belong to this change.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <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">&lt;TEI&gt;</code> elements may be combined within a <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;TEI&gt;</code> (or <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;teiCorpus&gt;</code>) element. [4. Default Text Structure 16.1. Varieties of Composite Text]</a:documentation>
         <group>
            <ref name="teiHeader"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="model.resource"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <ref name="TEI"/>
                  </zeroOrMore>
               </group>
               <oneOrMore>
                  <ref name="TEI"/>
               </oneOrMore>
            </choice>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="version">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the version number of the TEI Guidelines against which this document is valid.</a:documentation>
               <data type="token">
                  <param name="pattern">[\d]+(\.[\d]+){0,2}</param>
               </data>
            </attribute>
         </optional>
         <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>
            <rng:zeroOrMore xmlns:rng="http://relaxng.org/ns/structure/1.0">
               <rng:ref name="model.global"/>
            </rng:zeroOrMore>
            <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.typed.attributes"/>
         <ref name="att.written.attributes"/>
         <optional>
            <attribute name="decls">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(declarations) points to the <code xmlns="http://www.w3.org/1999/xhtml"
                        xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;sourceDesc&gt;</code> of the printing that the file transcribes, the one on whose scan the zones of the <code xmlns="http://www.w3.org/1999/xhtml"
                        xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;facsimile&gt;</code> were drawn.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <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) a region of the original page, which points to its <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;zone&gt;</code> in the <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;facsimile&gt;</code> with <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">@facs</code>. [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="welte-ads-div-abstractModel-structure-div-in-l-constraint-rule-19">
            <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      context="tei:l//tei:div">
               <sch:assert test="ancestor::tei:floatingText">
          Abstract model violation: Metrical lines (&lt;l&gt; elements) may not contain higher-level structural elements such as &lt;div&gt;, unless &lt;div&gt; is a descendant of &lt;floatingText&gt;.
        </sch:assert>
            </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0"
                  id="welte-ads-div-abstractModel-structure-div-in-ab-or-p-constraint-rule-20">
            <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      context="tei:div">
               <sch:report test="(ancestor::tei:p or ancestor::tei:ab) and not(ancestor::tei:floatingText)">
          Abstract model violation: &lt;p&gt; and &lt;ab&gt; may not contain higher-level structural elements such as &lt;div&gt;, unless &lt;div&gt; is a descendant of &lt;floatingText&gt;.
        </sch:report>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.divLike.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <ref name="att.written.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>illustration</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a picture, described in a <code xmlns="http://www.w3.org/1999/xhtml"
                           xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;figure&gt;</code>
                  </a:documentation>
                  <value>frame</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a part of a frame around the advertisement</a:documentation>
                  <value>footer</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a block at the foot of the advertisement</a:documentation>
                  <value>brand-elements</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the brand name or a slogan, set off as a block of its own</a:documentation>
                  <value>panel</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a panel that tells a story within the advertisement</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="signed">
      <element name="signed">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(signature) contains the closing salutation, etc., appended to a foreword, dedicatory epistle, or other division of a text. [4.2.2. Openers and Closers]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.written.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="att.global.facs.attributes">
      <ref name="att.global.facs.attribute.facs"/>
   </define>
   <define name="att.global.facs.attribute.facs">
      <optional>
         <attribute name="facs">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(facsimile) points to one or more images, portions of an image, or surfaces which correspond to the current element.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.global.change.attributes">
      <ref name="att.global.change.attribute.change"/>
   </define>
   <define name="att.global.change.attribute.change">
      <optional>
         <attribute name="change">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to one or more <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;change&gt;</code> elements documenting a state or revision campaign to which the element bearing this attribute and its children have been assigned by the encoder.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.coordinated.attributes">
      <ref name="att.coordinated.attribute.start"/>
      <ref name="att.coordinated.attribute.ulx"/>
      <ref name="att.coordinated.attribute.uly"/>
      <ref name="att.coordinated.attribute.lrx"/>
      <ref name="att.coordinated.attribute.lry"/>
      <ref name="att.coordinated.attribute.points"/>
   </define>
   <define name="att.coordinated.attribute.start">
      <optional>
         <attribute name="start">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the element within a transcription of the text containing at least the start of the writing represented by this zone or surface.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.coordinated.attribute.ulx">
      <optional>
         <attribute name="ulx">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the x coordinate value for the upper left corner of a rectangular space.</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.coordinated.attribute.uly">
      <optional>
         <attribute name="uly">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the y coordinate value for the upper left corner of a rectangular space.</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.coordinated.attribute.lrx">
      <optional>
         <attribute name="lrx">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the x coordinate value for the lower right corner of a rectangular space.</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.coordinated.attribute.lry">
      <optional>
         <attribute name="lry">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the y coordinate value for the lower right corner of a rectangular space.</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.coordinated.attribute.points">
      <optional>
         <attribute name="points">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies a two or three dimensional area by means of a series of pairs of numbers, each of which gives the x,y, or z coordinates of a point on a line enclosing the area.</a:documentation>
            <list>
               <data type="token">
                  <param name="pattern">(-?[0-9]+(\.[0-9]+)?,-?[0-9]+(\.[0-9]+)?(,-?[0-9]+(\.[0-9]+)?)?)</param>
               </data>
               <data type="token">
                  <param name="pattern">(-?[0-9]+(\.[0-9]+)?,-?[0-9]+(\.[0-9]+)?(,-?[0-9]+(\.[0-9]+)?)?)</param>
               </data>
               <data type="token">
                  <param name="pattern">(-?[0-9]+(\.[0-9]+)?,-?[0-9]+(\.[0-9]+)?(,-?[0-9]+(\.[0-9]+)?)?)</param>
               </data>
               <zeroOrMore>
                  <data type="token">
                     <param name="pattern">(-?[0-9]+(\.[0-9]+)?,-?[0-9]+(\.[0-9]+)?(,-?[0-9]+(\.[0-9]+)?)?)</param>
                  </data>
               </zeroOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="facsimile">
      <element name="facsimile">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a representation of some written source in the form of a set of images rather than as transcribed or encoded text. [12.1. Digital Facsimiles]</a:documentation>
         <choice>
            <oneOrMore>
               <choice>
                  <ref name="model.graphicLike"/>
                  <ref name="surface"/>
               </choice>
            </oneOrMore>
            <oneOrMore>
               <ref name="facsimile"/>
            </oneOrMore>
         </choice>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0"
                  id="welte-ads-facsimile-no_facsimile_text_nodes-constraint-rule-21">
            <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:xi="http://www.w3.org/2001/XInclude"
                      context="tei:facsimile//tei:line | tei:facsimile//tei:zone">
               <sch:report test="child::text()[ normalize-space(.) ne '']">
          A &lt;facsimile&gt; element represents a text with images, thus
          transcribed text should not be present within it.
        </sch:report>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.declaring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="surface">
      <element name="surface">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">defines a written surface as a two-dimensional or three-dimensional coordinate space, optionally grouping one or more graphic representations of that space, zones of interest within that space, and, when using an embedded transcription approach, transcriptions of the writing within them. [12.1. Digital Facsimiles 12.2.2. Embedded Transcription]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.global"/>
                  <ref name="model.labelLike"/>
                  <ref name="model.graphicLike"/>
               </choice>
            </zeroOrMore>
            <zeroOrMore>
               <choice>
                  <ref name="zone"/>
                  <ref name="surface"/>
               </choice>
               <zeroOrMore>
                  <ref name="model.global"/>
               </zeroOrMore>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.coordinated.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="attachment">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes the method by which this surface is or was connected to the main surface.
Sample values include: 1] glued; 2] pinned; 3] sewn</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="flipping">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates whether the surface is attached and folded in such a way as to provide two writing surfaces.</a:documentation>
               <data type="boolean"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="zone">
      <element name="zone">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">defines any two-dimensional or three-dimensional area within a <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;surface&gt;</code> element. [12.1. Digital Facsimiles 12.2.2. Embedded Transcription]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.graphicLike"/>
               <ref name="model.global"/>
               <ref name="surface"/>
               <ref name="model.linePart"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.coordinated.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.written.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="rotate"
                       a:defaultValue="0">
               <a:documentation>indicates the amount by which this zone has been rotated clockwise, with respect to the normal orientation of the parent <code xmlns="http://www.w3.org/1999/xhtml"
                        xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;surface&gt;</code> element as implied by the dimensions given in the <code xmlns="http://www.w3.org/1999/xhtml"
                        xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;msDesc&gt;</code> element or by the coordinates of the <code xmlns="http://www.w3.org/1999/xhtml"
                        xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;surface&gt;</code> itself. The orientation is expressed in arc degrees.</a:documentation>
               <choice>
                  <data type="double"/>
                  <data type="token">
                     <param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
                  </data>
                  <data type="decimal"/>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="space">
      <element name="space">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(space) indicates the location of a significant space in the text. [12.4.1. Space]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="model.descLike"/>
               <ref name="model.certLike"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attribute.xmlid"/>
         <ref name="att.global.attribute.n"/>
         <ref name="att.global.attribute.xmllang"/>
         <ref name="att.global.attribute.xmlbase"/>
         <ref name="att.global.attribute.xmlspace"/>
         <ref name="att.global.analytic.attribute.ana"/>
         <ref name="att.global.change.attribute.change"/>
         <ref name="att.global.facs.attribute.facs"/>
         <ref name="att.global.linking.attribute.corresp"/>
         <ref name="att.global.linking.attribute.synch"/>
         <ref name="att.global.linking.attribute.sameAs"/>
         <ref name="att.global.linking.attribute.copyOf"/>
         <ref name="att.global.linking.attribute.next"/>
         <ref name="att.global.linking.attribute.prev"/>
         <ref name="att.global.linking.attribute.exclude"/>
         <ref name="att.global.linking.attribute.select"/>
         <ref name="att.global.rendition.attribute.rend"/>
         <ref name="att.global.rendition.attribute.style"/>
         <ref name="att.global.rendition.attribute.rendition"/>
         <ref name="att.global.responsibility.attribute.cert"/>
         <ref name="att.global.source.attribute.source"/>
         <ref name="att.dimensions.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="resp">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(responsible party) (responsible party) indicates the individual responsible for identifying and measuring the space.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="dim">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(dimension) indicates whether the space is horizontal or vertical.</a:documentation>
               <choice>
                  <value>horizontal</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the space is horizontal.</a:documentation>
                  <value>vertical</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the space is vertical.</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="att.msExcerpt.attributes">
      <ref name="att.msExcerpt.attribute.defective"/>
   </define>
   <define name="att.msExcerpt.attribute.defective">
      <optional>
         <attribute name="defective">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates whether the passage being quoted is defective, i.e. incomplete through loss or damage.</a:documentation>
            <choice>
               <data type="boolean"/>
               <choice>
                  <value>unknown</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                  <value>inapplicable</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               </choice>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="msDesc">
      <element name="msDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(manuscript description) identifies the scan of a printing: the digital collection that holds it (<code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;repository&gt;</code>) and the URL at which it shows the page (<code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;idno&gt;</code>). [11.1. Overview]</a:documentation>
         <group>
            <ref name="msIdentifier"/>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="model.pLike"/>
               </oneOrMore>
               <empty/>
            </choice>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0"
                  id="welte-ads-msDesc-one_ms_singleton_max-constraint-rule-22">
            <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:xi="http://www.w3.org/2001/XInclude"
                      context="tei:msContents|tei:physDesc|tei:history|tei:additional">
               <sch:let name="gi" value="name(.)"/>
               <sch:report test="preceding-sibling::*[ name(.) eq $gi ]                           and                           not( following-sibling::*[ name(.) eq $gi ] )">
          Only one &lt;<sch:name/>&gt; is allowed as a child of &lt;<sch:value-of select="name(..)"/>&gt;.
        </sch:report>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.docStatus.attributes"/>
         <ref name="att.sortable.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="msIdentifier">
      <element name="msIdentifier">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(manuscript identifier) contains the information required to identify the manuscript or similar object being described. [11.4. The Manuscript Identifier]</a:documentation>
         <group>
            <optional>
               <ref name="placeName"/>
            </optional>
            <optional>
               <ref name="repository"/>
            </optional>
            <zeroOrMore>
               <ref name="idno"/>
            </zeroOrMore>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0"
                  id="welte-ads-msIdentifier-msId_minimal-constraint-rule-23">
            <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:xi="http://www.w3.org/2001/XInclude"
                      context="tei:msIdentifier">
               <sch:report test="not( parent::tei:msPart )                           and                           ( child::*[1]/self::idno  or  child::*[1]/self::altIdentifier  or  normalize-space(.) eq '')">An &lt;msIdentifier&gt; must contain either a &lt;repository&gt; or &lt;location&gt;.</sch:report>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="repository">
      <element name="repository">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(repository) contains the name of a repository within which manuscripts or other objects are stored, possibly forming part of an institution. [11.4. The Manuscript Identifier]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <ref name="att.global.attributes"/>
         <ref name="att.naming.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="att.datable.custom.attributes">
      <ref name="att.datable.custom.attribute.when-custom"/>
      <ref name="att.datable.custom.attribute.notBefore-custom"/>
      <ref name="att.datable.custom.attribute.notAfter-custom"/>
      <ref name="att.datable.custom.attribute.from-custom"/>
      <ref name="att.datable.custom.attribute.to-custom"/>
      <ref name="att.datable.custom.attribute.datingPoint"/>
      <ref name="att.datable.custom.attribute.datingMethod"/>
   </define>
   <define name="att.datable.custom.attribute.when-custom">
      <optional>
         <attribute name="when-custom">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies the value of a date or time in some custom standard form.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.datable.custom.attribute.notBefore-custom">
      <optional>
         <attribute name="notBefore-custom">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the earliest possible date for the event in some custom standard form.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.datable.custom.attribute.notAfter-custom">
      <optional>
         <attribute name="notAfter-custom">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the latest possible date for the event in some custom standard form.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.datable.custom.attribute.from-custom">
      <optional>
         <attribute name="from-custom">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the starting point of the period in some custom standard form.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.datable.custom.attribute.to-custom">
      <optional>
         <attribute name="to-custom">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the ending point of the period in some custom standard form.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.datable.custom.attribute.datingPoint">
      <optional>
         <attribute name="datingPoint">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a pointer to some location defining a named point in time with reference to which the datable item is understood to have occurred.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.datable.custom.attribute.datingMethod">
      <optional>
         <attribute name="datingMethod">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a pointer to a <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;calendar&gt;</code> element or other means of interpreting the values of the custom dating attributes.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="model.persNamePart">
      <choice>
         <ref name="surname"/>
         <ref name="forename"/>
         <ref name="roleName"/>
      </choice>
   </define>
   <define name="model.persNamePart_alternation">
      <choice>
         <ref name="surname"/>
         <ref name="forename"/>
         <ref name="roleName"/>
      </choice>
   </define>
   <define name="model.persNamePart_sequence">
      <ref name="surname"/>
      <ref name="forename"/>
      <ref name="roleName"/>
   </define>
   <define name="model.persNamePart_sequenceOptional">
      <optional>
         <ref name="surname"/>
      </optional>
      <optional>
         <ref name="forename"/>
      </optional>
      <optional>
         <ref name="roleName"/>
      </optional>
   </define>
   <define name="model.persNamePart_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="surname"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="forename"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="roleName"/>
      </zeroOrMore>
   </define>
   <define name="model.persNamePart_sequenceRepeatable">
      <oneOrMore>
         <ref name="surname"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="forename"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="roleName"/>
      </oneOrMore>
   </define>
   <define name="att.datable.iso.attributes">
      <ref name="att.datable.iso.attribute.when-iso"/>
      <ref name="att.datable.iso.attribute.notBefore-iso"/>
      <ref name="att.datable.iso.attribute.notAfter-iso"/>
      <ref name="att.datable.iso.attribute.from-iso"/>
      <ref name="att.datable.iso.attribute.to-iso"/>
   </define>
   <define name="att.datable.iso.attribute.when-iso">
      <optional>
         <attribute name="when-iso">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies the value of a date or time in a standard form.</a:documentation>
            <choice>
               <data type="date"/>
               <data type="gYear"/>
               <data type="gMonth"/>
               <data type="gDay"/>
               <data type="gYearMonth"/>
               <data type="gMonthDay"/>
               <data type="time"/>
               <data type="dateTime"/>
               <data type="token">
                  <param name="pattern">[0-9.,DHMPRSTWYZ/:+\-]+</param>
               </data>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.datable.iso.attribute.notBefore-iso">
      <optional>
         <attribute name="notBefore-iso">
            <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"/>
               <data type="gMonth"/>
               <data type="gDay"/>
               <data type="gYearMonth"/>
               <data type="gMonthDay"/>
               <data type="time"/>
               <data type="dateTime"/>
               <data type="token">
                  <param name="pattern">[0-9.,DHMPRSTWYZ/:+\-]+</param>
               </data>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.datable.iso.attribute.notAfter-iso">
      <optional>
         <attribute name="notAfter-iso">
            <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"/>
               <data type="gMonth"/>
               <data type="gDay"/>
               <data type="gYearMonth"/>
               <data type="gMonthDay"/>
               <data type="time"/>
               <data type="dateTime"/>
               <data type="token">
                  <param name="pattern">[0-9.,DHMPRSTWYZ/:+\-]+</param>
               </data>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.datable.iso.attribute.from-iso">
      <optional>
         <attribute name="from-iso">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the starting point of the period in standard form.</a:documentation>
            <choice>
               <data type="date"/>
               <data type="gYear"/>
               <data type="gMonth"/>
               <data type="gDay"/>
               <data type="gYearMonth"/>
               <data type="gMonthDay"/>
               <data type="time"/>
               <data type="dateTime"/>
               <data type="token">
                  <param name="pattern">[0-9.,DHMPRSTWYZ/:+\-]+</param>
               </data>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.datable.iso.attribute.to-iso">
      <optional>
         <attribute name="to-iso">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the ending point of the period in standard form.</a:documentation>
            <choice>
               <data type="date"/>
               <data type="gYear"/>
               <data type="gMonth"/>
               <data type="gDay"/>
               <data type="gYearMonth"/>
               <data type="gMonthDay"/>
               <data type="time"/>
               <data type="dateTime"/>
               <data type="token">
                  <param name="pattern">[0-9.,DHMPRSTWYZ/:+\-]+</param>
               </data>
            </choice>
         </attribute>
      </optional>
   </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"/>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.personal.attribute.full"/>
         <ref name="att.personal.attribute.sort"/>
         <ref name="att.naming.attribute.role"/>
         <ref name="att.naming.attribute.nymRef"/>
         <ref name="att.canonical.attribute.ref"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="key">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a short key for the firm; on the <code xmlns="http://www.w3.org/1999/xhtml"
                        xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;author&gt;</code> in the <code xmlns="http://www.w3.org/1999/xhtml"
                        xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;titleStmt&gt;</code>, the firm that placed the advertisement, by which the site groups the advertisements.</a:documentation>
               <data type="string"/>
            </attribute>
         </optional>
         <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"/>
         <ref name="att.global.attribute.xmlid"/>
         <ref name="att.global.attribute.n"/>
         <ref name="att.global.attribute.xmllang"/>
         <ref name="att.global.attribute.xmlbase"/>
         <ref name="att.global.attribute.xmlspace"/>
         <ref name="att.global.analytic.attribute.ana"/>
         <ref name="att.global.change.attribute.change"/>
         <ref name="att.global.facs.attribute.facs"/>
         <ref name="att.global.linking.attribute.synch"/>
         <ref name="att.global.linking.attribute.sameAs"/>
         <ref name="att.global.linking.attribute.copyOf"/>
         <ref name="att.global.linking.attribute.next"/>
         <ref name="att.global.linking.attribute.prev"/>
         <ref name="att.global.linking.attribute.exclude"/>
         <ref name="att.global.linking.attribute.select"/>
         <ref name="att.global.rendition.attribute.rend"/>
         <ref name="att.global.rendition.attribute.style"/>
         <ref name="att.global.rendition.attribute.rendition"/>
         <ref name="att.global.responsibility.attribute.cert"/>
         <ref name="att.global.responsibility.attribute.resp"/>
         <ref name="att.global.source.attribute.source"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.personal.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute name="corresp">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(corresponds) the URI of the person in the Integrated Authority File (GND) of the German National Library, e.g. https://d-nb.info/gnd/118697641 (Edvard Grieg).</a:documentation>
               <data type="anyURI">
                  <param name="pattern">https://d-nb\.info/gnd/[0-9X\-]+</param>
               </data>
            </attribute>
         </optional>
         <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>artist</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a performer, mostly a pianist, named as playing for the Welte-Mignon</a:documentation>
                  <value>composer</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a composer, named for a work that the Welte-Mignon plays</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="surname">
      <element name="surname">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(surname) contains a family (inherited) name, as opposed to a given, baptismal, or nick name. [14.2.1. Personal Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.personal.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="forename">
      <element name="forename">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(forename) contains a forename, given or baptismal name. [14.2.1. Personal Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.personal.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="roleName">
      <element name="roleName">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(role name) contains a name component which indicates that the referent has a particular role or position in society, such as an official title or rank. [14.2.1. Personal Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.personal.attributes"/>
         <ref name="att.typed.attributes"/>
         <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"/>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.personal.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="figure">
      <element name="figure">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(figure) an illustration of the advertisement, which a <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;desc&gt;</code> describes; <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">@ana</code> points to the topics that it shows. [15.4. Specific Elements for Graphic Images]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="model.headLike"/>
               <ref name="model.common"/>
               <ref name="model.graphicLike"/>
               <ref name="model.global"/>
               <ref name="model.divBottom"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.written.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="att.global.linking.attributes">
      <ref name="att.global.linking.attribute.corresp"/>
      <ref name="att.global.linking.attribute.synch"/>
      <ref name="att.global.linking.attribute.sameAs"/>
      <ref name="att.global.linking.attribute.copyOf"/>
      <ref name="att.global.linking.attribute.next"/>
      <ref name="att.global.linking.attribute.prev"/>
      <ref name="att.global.linking.attribute.exclude"/>
      <ref name="att.global.linking.attribute.select"/>
   </define>
   <define name="att.global.linking.attribute.corresp">
      <optional>
         <attribute name="corresp">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(corresponds) points to elements that correspond to the current element in some way.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.global.linking.attribute.synch">
      <optional>
         <attribute name="synch">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(synchronous) points to elements that are synchronous with the current element.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.global.linking.attribute.sameAs">
      <optional>
         <attribute name="sameAs">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to an element that is the same as the current element.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.global.linking.attribute.copyOf">
      <optional>
         <attribute name="copyOf">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to an element of which the current element is a copy.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.global.linking.attribute.next">
      <optional>
         <attribute name="next">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(next) points to the next element of a virtual aggregate of which the current element is part.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.global.linking.attribute.prev">
      <optional>
         <attribute name="prev">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(previous) points to the previous element of a virtual aggregate of which the current element is part.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.global.linking.attribute.exclude">
      <optional>
         <attribute name="exclude">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to elements that are in exclusive alternation with the current element.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.global.linking.attribute.select">
      <optional>
         <attribute name="select">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">selects one or more alternants; if one alternant is selected, the ambiguity or uncertainty is marked as resolved. If more than one alternant is selected, the degree of ambiguity or uncertainty is marked as reduced by the number of alternants not selected.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="ab">
      <element name="ab">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(anonymous block) contains any component-level unit of text, acting as a container for phrase or inter level elements analogous to, but without the same constraints as, a paragraph. [17.3. Blocks, Segments, and Anchors]</a:documentation>
         <ref name="macro.abContent"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0"
                  id="welte-ads-ab-abstractModel-structure-ab-in-l-constraint-rule-24">
            <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:xi="http://www.w3.org/2001/XInclude"
                      context="tei:l//tei:ab">
               <sch:assert test="ancestor::tei:floatingText | parent::tei:figure | parent::tei:note">
          Abstract model violation: Metrical lines (&lt;l&gt; elements) may not contain higher-level divisions such as &lt;p&gt; or &lt;ab&gt;, unless &lt;ab&gt; is a child of &lt;figure&gt; or &lt;note&gt;, or is a descendant of &lt;floatingText&gt;.
        </sch:assert>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.fragmentable.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.written.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="seg">
      <element name="seg">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(arbitrary segment) represents any segmentation of text below the chunk level. [17.3. Blocks, Segments, and Anchors 6.2. Components of the Verse Line 7.2.6. Speech Contents]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <ref name="att.notated.attributes"/>
         <ref name="att.segLike.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <ref name="att.written.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>topic</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a passage that shows one or more topics, to which <code xmlns="http://www.w3.org/1999/xhtml"
                           xmlns:rng="http://relaxng.org/ns/structure/1.0">@ana</code> points</a:documentation>
                  <value>slogan</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a slogan of the brand, e.g. The Master's Fingers on Your Piano</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="model.rdgLike">
      <choice>
         <ref name="rdg"/>
      </choice>
   </define>
   <define name="model.rdgPart">
      <notAllowed/>
   </define>
   <define name="att.witnessed.attributes">
      <ref name="att.witnessed.attribute.wit"/>
   </define>
   <define name="att.witnessed.attribute.wit">
      <optional>
         <attribute name="wit">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(witness or witnesses) contains a space-delimited list of one or more pointers indicating the witnesses which attest to a given reading.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.textCritical.attributes">
      <ref name="att.written.attributes"/>
      <ref name="att.textCritical.attribute.type"/>
      <ref name="att.textCritical.attribute.cause"/>
      <ref name="att.textCritical.attribute.varSeq"/>
      <ref name="att.textCritical.attribute.require"/>
      <ref name="att.typed.attribute.subtype"/>
   </define>
   <define name="att.textCritical.attribute.type">
      <optional>
         <attribute name="type">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies the reading according to some useful typology.
Sample values include: 1] substantive (substantive); 2] orthographic (orthographic)</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.textCritical.attribute.cause">
      <optional>
         <attribute name="cause">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies the cause for the variant reading, according to any appropriate typology of possible origins.
Sample values include: 1] homeoteleuton; 2] homeoarchy; 3] paleographicConfusion; 4] haplography; 5] dittography; 6] falseEmendation</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.textCritical.attribute.varSeq">
      <optional>
         <attribute name="varSeq">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(variant sequence) provides a number indicating the position of this reading in a sequence, when there is reason to presume a sequence to the variants. </a:documentation>
            <data type="nonNegativeInteger"/>
         </attribute>
      </optional>
   </define>
   <define name="att.textCritical.attribute.require">
      <optional>
         <attribute name="require">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to other readings that are required when adopting the current reading or lemma.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="app">
      <element name="app">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(apparatus entry) contains one entry in a critical apparatus, with an optional lemma and usually one or more readings or notes on the relevant passage. [13.1.1. The Apparatus Entry]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="model.rdgLike"/>
               <ref name="model.noteLike"/>
            </choice>
         </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">classifies the variation contained in this element according to some convenient typology.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="from">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the beginning of the lemma in the base text.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="to">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the endpoint of the lemma in the base text.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="loc">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(location) indicates the location of the variation, when the location-referenced method of apparatus markup is used.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="token">
                        <param name="pattern">[^\p{C}\p{Z}]+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="rdg">
      <element name="rdg">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reading) contains a single reading within a textual variation. [13.1. The Apparatus Entry, Readings, and Witnesses]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.divLike"/>
               <ref name="model.divPart"/>
               <ref name="model.gLike"/>
               <ref name="model.phrase"/>
               <ref name="model.inter"/>
               <ref name="model.global"/>
               <ref name="model.rdgPart"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attribute.xmlid"/>
         <ref name="att.global.attribute.n"/>
         <ref name="att.global.attribute.xmllang"/>
         <ref name="att.global.attribute.xmlbase"/>
         <ref name="att.global.attribute.xmlspace"/>
         <ref name="att.global.analytic.attribute.ana"/>
         <ref name="att.global.change.attribute.change"/>
         <ref name="att.global.facs.attribute.facs"/>
         <ref name="att.global.linking.attribute.corresp"/>
         <ref name="att.global.linking.attribute.synch"/>
         <ref name="att.global.linking.attribute.sameAs"/>
         <ref name="att.global.linking.attribute.copyOf"/>
         <ref name="att.global.linking.attribute.next"/>
         <ref name="att.global.linking.attribute.prev"/>
         <ref name="att.global.linking.attribute.exclude"/>
         <ref name="att.global.linking.attribute.select"/>
         <ref name="att.global.rendition.attribute.rend"/>
         <ref name="att.global.rendition.attribute.style"/>
         <ref name="att.global.rendition.attribute.rendition"/>
         <ref name="att.global.responsibility.attribute.cert"/>
         <ref name="att.global.responsibility.attribute.resp"/>
         <ref name="att.textCritical.attributes"/>
         <ref name="att.witnessed.attributes"/>
         <optional>
            <attribute name="source">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to the <code xmlns="http://www.w3.org/1999/xhtml"
                        xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;sourceDesc&gt;</code> of each printing that reads so.</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="welte-ads-rdg-source-only_1_ODD_source-constraint-rule-25">
            <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:xi="http://www.w3.org/2001/XInclude"
                      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
              &lt;<sch:value-of select="name(.)"/>&gt;), the @source attribute
              should have only 1 value. (This one has <sch:value-of select="count($srcs)"/>.)
            </sch:report>
            </sch:rule>
         </pattern>
         <empty/>
      </element>
   </define>
   <define name="att.translatable.attributes">
      <ref name="att.translatable.attribute.versionDate"/>
   </define>
   <define name="att.translatable.attribute.versionDate">
      <optional>
         <attribute name="versionDate">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the date on which the source text was extracted and sent to the translator</a:documentation>
            <choice>
               <data type="date">
                  <param name="pattern">(19[789][0-9]|[2-9][0-9]{3}).*</param>
               </data>
               <data type="dateTime">
                  <param name="pattern">(19[789][0-9]|[2-9][0-9]{3}).*</param>
               </data>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att">
      <element name="att">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(attribute) contains the name of an attribute appearing within running text. [23. Documentation Elements]</a:documentation>
         <data type="Name"/>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="scheme"
                       a:defaultValue="TEI">
               <a:documentation>(scheme) supplies an identifier for the scheme in which this name is defined.
Sample values include: 1] TEI (Text Encoding Initiative); 2] DBK (Docbook); 3] XX (unknown); 4] imaginary (imaginary); 5] XHTML (XHTML); 6] XML (XML); 7] XI (XI)</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="gi">
      <element name="gi">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(element name) contains the name (generic identifier) of an element. [23. Documentation Elements 23.5. Element Specifications]</a:documentation>
         <data type="Name"/>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="scheme"
                       a:defaultValue="TEI">
               <a:documentation>supplies the name of the scheme in which this name is defined.
Sample values include: 1] TEI; 2] DBK (docbook); 3] XX (unknown); 4] Schematron; 5] HTML</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="val">
      <element name="val">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value) contains a single attribute value. [23. Documentation Elements 23.5.3. Attribute List Specification]</a:documentation>
         <text/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="att.global.analytic.attributes">
      <ref name="att.global.analytic.attribute.ana"/>
   </define>
   <define name="att.global.analytic.attribute.ana">
      <optional>
         <attribute name="ana">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(analysis) points to one or more topics, the categories of the taxonomy #topics in the <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;classDecl&gt;</code>: the recurring motifs of the advertisements that the passage (<code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;seg&gt;</code>) or the picture (<code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;figure&gt;</code>) shows.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <start>
      <choice>
         <ref name="TEI"/>
      </choice>
   </start>
   <sch:ns xmlns="http://www.tei-c.org/ns/1.0"
           xmlns:rng="http://relaxng.org/ns/structure/1.0"
           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
           prefix="tei"
           uri="http://www.tei-c.org/ns/1.0"/>
   <sch:ns xmlns="http://www.tei-c.org/ns/1.0"
           xmlns:rng="http://relaxng.org/ns/structure/1.0"
           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
           prefix="xs"
           uri="http://www.w3.org/2001/XMLSchema"/>
   <sch:ns xmlns="http://www.tei-c.org/ns/1.0"
           xmlns:rng="http://relaxng.org/ns/structure/1.0"
           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
           prefix="rng"
           uri="http://relaxng.org/ns/structure/1.0"/>
   <sch:ns xmlns="http://www.tei-c.org/ns/1.0"
           xmlns:rng="http://relaxng.org/ns/structure/1.0"
           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
           prefix="rna"
           uri="http://relaxng.org/ns/compatibility/annotations/1.0"/>
   <sch:ns xmlns="http://www.tei-c.org/ns/1.0"
           xmlns:rng="http://relaxng.org/ns/structure/1.0"
           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
           prefix="sch"
           uri="http://purl.oclc.org/dsdl/schematron"/>
   <sch:ns xmlns="http://www.tei-c.org/ns/1.0"
           xmlns:rng="http://relaxng.org/ns/structure/1.0"
           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
           prefix="sch1x"
           uri="http://www.ascc.net/xml/schematron"/>
</grammar>
