<?xml version="1.0" encoding="utf-8"?>
<grammar xmlns:xlink="http://www.w3.org/1999/xlink"
         xmlns:tei="http://www.tei-c.org/ns/1.0"
         xmlns:teix="http://www.tei-c.org/ns/Examples"
         xmlns="http://relaxng.org/ns/structure/1.0"
         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
         ns="http://www.tei-c.org/ns/1.0"><!--
Schema generated from ODD source 2023-02-13T08:45:22Z. .
TEI Edition: Version 4.5.0. Last updated on
        25th October 2022, revision 3e98e619e
TEI Edition Location: https://www.tei-c.org/Vault/P5/Version 4.5.0/
  
--><!--TEI material can be licensed differently depending on the use you intend to make of it. Hence it is made available under both the CC+BY and BSD-2 licences. The CC+BY licence is generally appropriate for usages which treat TEI content as data or documentation. The BSD-2 licence is generally appropriate for usage of TEI content in a software environment. For further information or clarification, please contact the TEI Consortium (info@tei-c.org).-->
   <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="macro.xtext">
      <zeroOrMore>
         <choice>
            <text/>
            <ref name="model.gLike"/>
         </choice>
      </zeroOrMore>
   </define>
   <define name="anyElement-xenoData">
      <element>
         <anyName>
            <except>
               <nsName ns="http://www.tei-c.org/ns/1.0"/>
               <name ns="http://www.tei-c.org/ns/Examples">egXML</name>
            </except>
         </anyName>
         <zeroOrMore>
            <attribute>
               <anyName/>
            </attribute>
         </zeroOrMore>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="anyElement-xenoData"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>
   <define name="anyElement-egXML">
      <element>
         <anyName>
            <except>
               <nsName ns="http://www.tei-c.org/ns/1.0"/>
               <name ns="http://www.tei-c.org/ns/Examples">egXML</name>
            </except>
         </anyName>
         <zeroOrMore>
            <attribute>
               <anyName/>
            </attribute>
         </zeroOrMore>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="anyElement-egXML"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>
   <define name="anyElement-content">
      <element>
         <anyName>
            <except>
               <nsName ns="http://www.tei-c.org/ns/1.0"/>
               <name ns="http://www.tei-c.org/ns/Examples">egXML</name>
            </except>
         </anyName>
         <zeroOrMore>
            <attribute>
               <anyName/>
            </attribute>
         </zeroOrMore>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="anyElement-content"/>
            </choice>
         </zeroOrMore>
      </element>
      <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
               id="d21693548e125816-constraint">
         <rule context="tei:content">
            <report test="descendant::*[not(namespace-uri(.) =               ('http://relaxng.org/ns/compatibility/annotations/1.0', 'http://relaxng.org/ns/structure/1.0', 'http://www.tei-c.org/ns/1.0'))]">content descendants must be in the
              namespaces
              'http://relaxng.org/ns/compatibility/annotations/1.0', 'http://relaxng.org/ns/structure/1.0', 'http://www.tei-c.org/ns/1.0'</report>
         </rule>
      </pattern>
   </define>
   <define name="anyElement-constraint">
      <element>
         <anyName>
            <except>
               <nsName ns="http://www.tei-c.org/ns/1.0"/>
               <name ns="http://www.tei-c.org/ns/Examples">egXML</name>
            </except>
         </anyName>
         <zeroOrMore>
            <attribute>
               <anyName/>
            </attribute>
         </zeroOrMore>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="anyElement-constraint"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>
   <define name="anyElement-datatype">
      <element>
         <anyName>
            <except>
               <nsName ns="http://www.tei-c.org/ns/1.0"/>
               <name ns="http://www.tei-c.org/ns/Examples">egXML</name>
            </except>
         </anyName>
         <zeroOrMore>
            <attribute>
               <anyName/>
            </attribute>
         </zeroOrMore>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="anyElement-datatype"/>
            </choice>
         </zeroOrMore>
      </element>
      <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
               id="d21693548e127123-constraint">
         <rule context="tei:datatype">
            <report test="descendant::*[not(namespace-uri(.) =               ('http://relaxng.org/ns/structure/1.0', 'http://www.tei-c.org/ns/1.0'))]">datatype descendants must be in the
              namespaces
              'http://relaxng.org/ns/structure/1.0', 'http://www.tei-c.org/ns/1.0'</report>
         </rule>
      </pattern>
   </define>
   <define name="att.anchoring.attributes">
      <ref name="att.anchoring.attribute.anchored"/>
      <ref name="att.anchoring.attribute.targetEnd"/>
   </define>
   <define name="att.anchoring.attribute.anchored">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="anchored"
                    a:defaultValue="true">
            <a:documentation>(anchored) indicates whether the copy text shows the exact place of reference for the note.</a:documentation>
            <data type="boolean"/>
         </attribute>
      </optional>
   </define>
   <define name="att.anchoring.attribute.targetEnd">
      <optional>
         <attribute name="targetEnd">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(target end) points to the end of the span to which the note is attached, if the note is not embedded in the text at that point.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.ascribed.attributes">
      <ref name="att.ascribed.attribute.who"/>
   </define>
   <define name="att.ascribed.attribute.who">
      <optional>
         <attribute name="who">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the person, or group of people, to whom the element content is ascribed.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.ascribed.directed.attributes">
      <ref name="att.ascribed.attributes"/>
      <ref name="att.ascribed.directed.attribute.toWhom"/>
   </define>
   <define name="att.ascribed.directed.attribute.toWhom">
      <optional>
         <attribute name="toWhom">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the person, or group of people, to whom a speech act or action is directed.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.canonical.attributes">
      <ref name="att.canonical.attribute.key"/>
      <ref name="att.canonical.attribute.ref"/>
   </define>
   <define name="att.canonical.attribute.key">
      <optional>
         <attribute name="key">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides an externally-defined means of identifying the entity (or entities) being named, using a coded value of some kind.</a:documentation>
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="att.canonical.attribute.ref">
      <optional>
         <attribute name="ref">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reference) provides an explicit means of locating a full definition or identity for the entity being named by means of one or more URIs.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.ranging.attributes">
      <ref name="att.ranging.attribute.atLeast"/>
      <ref name="att.ranging.attribute.atMost"/>
      <ref name="att.ranging.attribute.min"/>
      <ref name="att.ranging.attribute.max"/>
      <ref name="att.ranging.attribute.confidence"/>
   </define>
   <define name="att.ranging.attribute.atLeast">
      <optional>
         <attribute name="atLeast">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a minimum estimated value for the approximate measurement.</a:documentation>
            <choice>
               <data type="double"/>
               <data type="token">
                  <param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
               </data>
               <data type="decimal"/>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.ranging.attribute.atMost">
      <optional>
         <attribute name="atMost">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a maximum estimated value for the approximate measurement.</a:documentation>
            <choice>
               <data type="double"/>
               <data type="token">
                  <param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
               </data>
               <data type="decimal"/>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.ranging.attribute.min">
      <optional>
         <attribute name="min">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">where the measurement summarizes more than one observation or a range, supplies the minimum value observed.</a:documentation>
            <choice>
               <data type="double"/>
               <data type="token">
                  <param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
               </data>
               <data type="decimal"/>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.ranging.attribute.max">
      <optional>
         <attribute name="max">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">where the measurement summarizes more than one observation or a range, supplies the maximum value observed.</a:documentation>
            <choice>
               <data type="double"/>
               <data type="token">
                  <param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
               </data>
               <data type="decimal"/>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.ranging.attribute.confidence">
      <optional>
         <attribute name="confidence">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the degree of statistical confidence (between zero and one) that a value falls within the range specified by <code xmlns="http://www.w3.org/1999/xhtml">@min</code> and <code xmlns="http://www.w3.org/1999/xhtml">@max</code>, or the proportion of observed values that fall within that range.</a:documentation>
            <data type="double"/>
         </attribute>
      </optional>
   </define>
   <define name="att.dimensions.attributes">
      <ref name="att.ranging.attributes"/>
      <ref name="att.dimensions.attribute.unit"/>
      <ref name="att.dimensions.attribute.quantity"/>
      <ref name="att.dimensions.attribute.extent"/>
      <ref name="att.dimensions.attribute.precision"/>
      <ref name="att.dimensions.attribute.scope"/>
   </define>
   <define name="att.dimensions.attribute.unit">
      <optional>
         <attribute name="unit">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">names the unit used for the measurement
Suggested values include: 1] cm (centimetres); 2] mm (millimetres); 3] in (inches); 4] line; 5] char (characters)</a:documentation>
            <choice>
               <value>cm</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(centimetres) </a:documentation>
               <value>mm</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(millimetres) </a:documentation>
               <value>in</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(inches) </a:documentation>
               <value>line</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">lines of text</a:documentation>
               <value>char</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(characters) characters of text</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.dimensions.attribute.quantity">
      <optional>
         <attribute name="quantity">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the length in the units specified</a:documentation>
            <choice>
               <data type="double"/>
               <data type="token">
                  <param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
               </data>
               <data type="decimal"/>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.dimensions.attribute.extent">
      <optional>
         <attribute name="extent">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the size of the object concerned using a project-specific vocabulary combining quantity and units in a single string of words.</a:documentation>
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="att.dimensions.attribute.precision">
      <optional>
         <attribute name="precision">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes the precision of the values specified by the other attributes.</a:documentation>
            <choice>
               <value>high</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>medium</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>low</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>unknown</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.dimensions.attribute.scope">
      <optional>
         <attribute name="scope">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">where the measurement summarizes more than one observation, specifies the applicability of this measurement.
Sample values include: 1] all; 2] most; 3] range</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.written.attributes">
      <ref name="att.written.attribute.hand"/>
   </define>
   <define name="att.written.attribute.hand">
      <optional>
         <attribute name="hand">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to a <code xmlns="http://www.w3.org/1999/xhtml">&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.damaged.attributes">
      <ref name="att.dimensions.attributes"/>
      <ref name="att.written.attributes"/>
      <ref name="att.damaged.attribute.agent"/>
      <ref name="att.damaged.attribute.degree"/>
      <ref name="att.damaged.attribute.group"/>
   </define>
   <define name="att.damaged.attribute.agent">
      <optional>
         <attribute name="agent">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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>
   </define>
   <define name="att.damaged.attribute.degree">
      <optional>
         <attribute name="degree">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a coded representation of the degree of damage, either as a number between 0 (undamaged) and 1 (very extensively damaged), or as one of the codes high, medium, low, or unknown. The <code xmlns="http://www.w3.org/1999/xhtml">&lt;damage&gt;</code> element with the <code xmlns="http://www.w3.org/1999/xhtml">@degree</code> attribute should only be used where the text may be read with some confidence; text supplied from other sources should be tagged as <code xmlns="http://www.w3.org/1999/xhtml">&lt;supplied&gt;</code>.</a:documentation>
            <choice>
               <data type="double"/>
               <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.damaged.attribute.group">
      <optional>
         <attribute name="group">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">assigns an arbitrary number to each stretch of damage regarded as forming part of the same physical phenomenon.</a:documentation>
            <data type="nonNegativeInteger"/>
         </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">&lt;refsDecl&gt;</code> element in the TEI header</a:documentation>
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="att.datable.w3c.attributes">
      <ref name="att.datable.w3c.attribute.when"/>
      <ref name="att.datable.w3c.attribute.notBefore"/>
      <ref name="att.datable.w3c.attribute.notAfter"/>
      <ref name="att.datable.w3c.attribute.from"/>
      <ref name="att.datable.w3c.attribute.to"/>
   </define>
   <define name="att.datable.w3c.attribute.when">
      <optional>
         <attribute name="when">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies the value of the date or time in a standard form, e.g. yyyy-mm-dd.</a:documentation>
            <choice>
               <data type="date"/>
               <data type="gYear"/>
               <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="tei_all-att.datable.w3c-att-datable-w3c-when-constraint-rule-1">
      <sch:rule 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"
                xmlns="http://www.tei-c.org/ns/1.0"
                context="tei:*[@when]">
        <sch:report role="nonfatal" test="@notBefore|@notAfter|@from|@to">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="tei_all-att.datable.w3c-att-datable-w3c-from-constraint-rule-2">
      <sch:rule 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"
                xmlns="http://www.tei-c.org/ns/1.0"
                context="tei:*[@from]">
        <sch:report role="nonfatal" test="@notBefore">The @from and @notBefore attributes cannot be used together.</sch:report>
      </sch:rule>
   </pattern>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_all-att.datable.w3c-att-datable-w3c-to-constraint-rule-3">
      <sch:rule 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"
                xmlns="http://www.tei-c.org/ns/1.0"
                context="tei:*[@to]">
        <sch:report role="nonfatal" test="@notAfter">The @to and @notAfter attributes cannot be used together.</sch:report>
      </sch:rule>
   </pattern>
   <define name="att.datable.attributes">
      <ref name="att.datable.w3c.attributes"/>
      <ref name="att.datable.iso.attributes"/>
      <ref name="att.datable.custom.attributes"/>
      <ref name="att.datable.attribute.calendar"/>
      <ref name="att.datable.attribute.period"/>
   </define>
   <define name="att.datable.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="tei_all-att.datable-calendar-calendar-constraint-rule-4">
      <sch:rule 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"
                xmlns="http://www.tei-c.org/ns/1.0"
                context="tei:*[@calendar]">
            <sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more
            systems or calendars to which the date represented by the content of this element belongs,
            but this <sch:name/> element has no textual content.</sch:assert>
          </sch:rule>
   </pattern>
   <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">&lt;category&gt;</code>s or <code xmlns="http://www.w3.org/1999/xhtml">&lt;calendar&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.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">@valueDatcat</code> is present in the immediate context, this attribute takes on role (a), while <code xmlns="http://www.w3.org/1999/xhtml">@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">@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">@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.fragmentable.attributes">
      <ref name="att.fragmentable.attribute.part"/>
   </define>
   <define name="att.fragmentable.attribute.part">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="part"
                    a:defaultValue="N">
            <a:documentation>specifies whether or not its parent element is fragmented in some way, typically by some other overlapping structure: for example a speech which is divided between two or more verse stanzas, a paragraph which is split across a page division, a verse line which is divided between two speakers.</a:documentation>
            <choice>
               <value>Y</value>
               <a:documentation>(yes) the element is fragmented in some (unspecified) respect</a:documentation>
               <value>N</value>
               <a:documentation>(no) the element is not fragmented, or no claim is made as to its completeness</a:documentation>
               <value>I</value>
               <a:documentation>(initial) this is the initial part of a fragmented element</a:documentation>
               <value>M</value>
               <a:documentation>(medial) this is a medial part of a fragmented element</a:documentation>
               <value>F</value>
               <a:documentation>(final) this is the final part of a fragmented element</a:documentation>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.divLike.attributes">
      <ref name="att.metrical.attributes"/>
      <ref name="att.fragmentable.attributes"/>
      <ref name="att.divLike.attribute.org"/>
      <ref name="att.divLike.attribute.sample"/>
   </define>
   <define name="att.divLike.attribute.org">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="org"
                    a:defaultValue="uniform">
            <a:documentation>(organization) specifies how the content of the division is organized.</a:documentation>
            <choice>
               <value>composite</value>
               <a:documentation>no claim is made about the sequence in which the immediate contents of this division are to be processed, or their inter-relationships.</a:documentation>
               <value>uniform</value>
               <a:documentation>the immediate contents of this element are regarded as forming a logical unit, to be processed in sequence.</a:documentation>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.divLike.attribute.sample">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="sample"
                    a:defaultValue="complete">
            <a:documentation>indicates whether this division is a sample of the original source and if so, from which part.</a:documentation>
            <choice>
               <value>initial</value>
               <a:documentation>division lacks material present at end in source.</a:documentation>
               <value>medial</value>
               <a:documentation>division lacks material at start and end.</a:documentation>
               <value>final</value>
               <a:documentation>division lacks material at start.</a:documentation>
               <value>unknown</value>
               <a:documentation>position of sampled material within original unknown.</a:documentation>
               <value>complete</value>
               <a:documentation>division is not a sample.</a:documentation>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.docStatus.attributes">
      <ref name="att.docStatus.attribute.status"/>
   </define>
   <define name="att.docStatus.attribute.status">
      <optional>
         <attribute 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.duration.w3c.attributes">
      <ref name="att.duration.w3c.attribute.dur"/>
   </define>
   <define name="att.duration.w3c.attribute.dur">
      <optional>
         <attribute name="dur">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(duration) indicates the length of this element in time.</a:documentation>
            <data type="duration"/>
         </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"/>
               <choice>
                  <value>high</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                  <value>medium</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                  <value>low</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                  <value>unknown</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               </choice>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.global.responsibility.attribute.resp">
      <optional>
         <attribute name="resp">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(responsible party) indicates the agency responsible for the intervention or interpretation, for example an editor or transcriber.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.editLike.attributes">
      <ref name="att.editLike.attribute.evidence"/>
      <ref name="att.editLike.attribute.instant"/>
   </define>
   <define name="att.editLike.attribute.evidence">
      <optional>
         <attribute name="evidence">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the nature of the evidence supporting the reliability or accuracy of the intervention or interpretation.
Suggested values include: 1] internal; 2] external; 3] conjecture</a:documentation>
            <list>
               <oneOrMore>
                  <choice>
                     <value>internal</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">there is internal evidence to support the intervention.</a:documentation>
                     <value>external</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">there is external evidence to support the intervention.</a:documentation>
                     <value>conjecture</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the intervention or interpretation has been made by the editor, cataloguer, or scholar on the basis of their expertise.</a:documentation>
                     <data type="token">
                        <param name="pattern">[^\p{C}\p{Z}]+</param>
                     </data>
                  </choice>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.editLike.attribute.instant">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="instant"
                    a:defaultValue="false">
            <a:documentation>indicates whether this is an instant revision or not.</a:documentation>
            <choice>
               <data type="boolean"/>
               <choice>
                  <value>unknown</value>
                  <a:documentation/>
                  <value>inapplicable</value>
                  <a:documentation/>
               </choice>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.global.rendition.attributes">
      <ref name="att.global.rendition.attribute.rend"/>
      <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">points to a description of the rendering or presentation used for this element in the source text.</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="tei_all-att.global.source-source-only_1_ODD_source-constraint-rule-5">
      <sch:rule 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"
                xmlns="http://www.tei-c.org/ns/1.0"
                context="tei:*[@source]">
            <sch:let name="srcs" value="tokenize( normalize-space(@source),' ')"/>
            <sch:report test="( self::tei:classRef               | self::tei:dataRef               | self::tei:elementRef               | self::tei:macroRef               | self::tei:moduleRef               | self::tei:schemaSpec )               and               $srcs[2]">
              When used on a schema description element (like
              <sch:value-of select="name(.)"/>), the @source attribute
              should have only 1 value. (This one has <sch:value-of select="count($srcs)"/>.)
            </sch:report>
          </sch:rule>
   </pattern>
   <define name="att.global.attributes">
      <ref name="att.global.rendition.attributes"/>
      <ref name="att.global.linking.attributes"/>
      <ref name="att.global.analytic.attributes"/>
      <ref name="att.global.facs.attributes"/>
      <ref name="att.global.change.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"
                  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.handFeatures.attributes">
      <ref name="att.handFeatures.attribute.scribe"/>
      <ref name="att.handFeatures.attribute.scribeRef"/>
      <ref name="att.handFeatures.attribute.script"/>
      <ref name="att.handFeatures.attribute.scriptRef"/>
      <ref name="att.handFeatures.attribute.medium"/>
      <ref name="att.handFeatures.attribute.scope"/>
   </define>
   <define name="att.handFeatures.attribute.scribe">
      <optional>
         <attribute name="scribe">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a name or other identifier for the scribe believed to be responsible for this hand.</a:documentation>
            <data type="Name"/>
         </attribute>
      </optional>
   </define>
   <define name="att.handFeatures.attribute.scribeRef">
      <optional>
         <attribute name="scribeRef">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to a full description of the scribe concerned, typically supplied by a <code xmlns="http://www.w3.org/1999/xhtml">&lt;person&gt;</code> element elsewhere in the description.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.handFeatures.attribute.script">
      <optional>
         <attribute name="script">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes the particular script or writing style used by this hand, for example secretary, copperplate, Chancery, Italian, etc.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="Name"/>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.handFeatures.attribute.scriptRef">
      <optional>
         <attribute name="scriptRef">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to a full description of the script or writing style used by this hand, typically supplied by a <code xmlns="http://www.w3.org/1999/xhtml">&lt;scriptNote&gt;</code> element elsewhere in the description.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.handFeatures.attribute.medium">
      <optional>
         <attribute name="medium">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes the tint or type of ink, e.g. brown, or other writing medium, e.g. pencil</a:documentation>
            <list>
               <oneOrMore>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.handFeatures.attribute.scope">
      <optional>
         <attribute name="scope">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies how widely this hand is used in the manuscript.</a:documentation>
            <choice>
               <value>sole</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">only this hand is used throughout the manuscript</a:documentation>
               <value>major</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">this hand is used through most of the manuscript</a:documentation>
               <value>minor</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">this hand is used occasionally in the manuscript</a:documentation>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.internetMedia.attributes">
      <ref name="att.internetMedia.attribute.mimeType"/>
   </define>
   <define name="att.internetMedia.attribute.mimeType">
      <optional>
         <attribute name="mimeType">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(MIME media type) specifies the applicable multimedia internet mail extension (MIME) media type</a:documentation>
            <list>
               <oneOrMore>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.media.attributes">
      <ref name="att.internetMedia.attributes"/>
      <ref name="att.media.attribute.width"/>
      <ref name="att.media.attribute.height"/>
      <ref name="att.media.attribute.scale"/>
   </define>
   <define name="att.media.attribute.width">
      <optional>
         <attribute name="width">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Where the media are displayed, indicates the display width</a:documentation>
            <data type="token">
               <param name="pattern">[\-+]?\d+(\.\d+)?(%|cm|mm|in|pt|pc|px|em|ex|ch|rem|vw|vh|vmin|vmax)</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.media.attribute.height">
      <optional>
         <attribute name="height">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Where the media are displayed, indicates the display height</a:documentation>
            <data type="token">
               <param name="pattern">[\-+]?\d+(\.\d+)?(%|cm|mm|in|pt|pc|px|em|ex|ch|rem|vw|vh|vmin|vmax)</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.media.attribute.scale">
      <optional>
         <attribute name="scale">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Where the media are displayed, indicates a scale factor to be applied when generating the desired display size</a:documentation>
            <choice>
               <data type="double"/>
               <data type="token">
                  <param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
               </data>
               <data type="decimal"/>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.resourced.attributes">
      <ref name="att.resourced.attribute.url"/>
   </define>
   <define name="att.resourced.attribute.url">
      <attribute name="url">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(uniform resource locator) specifies the URL from which the media concerned may be obtained.</a:documentation>
         <data type="anyURI">
            <param name="pattern">\S+</param>
         </data>
      </attribute>
   </define>
   <define name="att.interpLike.attributes">
      <ref name="att.interpLike.attribute.type"/>
      <ref name="att.interpLike.attribute.subtype"/>
      <ref name="att.interpLike.attribute.inst"/>
   </define>
   <define name="att.interpLike.attribute.type">
      <optional>
         <attribute name="type">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates what kind of phenomenon is being noted in the passage.
Sample values include: 1] image; 2] character; 3] theme; 4] allusion</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.interpLike.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 phenomenon is being noted in the passage, if needed</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.interpLike.attribute.inst">
      <optional>
         <attribute name="inst">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(instances) points to instances of the analysis or interpretation represented by the current element.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</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">@xml:id</code> of a <code xmlns="http://www.w3.org/1999/xhtml">&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>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_all-att.measurement-att-measurement-unitRef-constraint-rule-6">
      <sch:rule 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"
                xmlns="http://www.tei-c.org/ns/1.0"
                context="tei:*[@unitRef]">
        <sch:report role="info" test="@unit">The @unit attribute may be unnecessary when @unitRef is present.</sch:report>
      </sch:rule>
   </pattern>
   <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.notated.attributes">
      <ref name="att.notated.attribute.notation"/>
   </define>
   <define name="att.notated.attribute.notation">
      <optional>
         <attribute name="notation">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">names the notation used for the content of the element.</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.placement.attributes">
      <ref name="att.placement.attribute.place"/>
   </define>
   <define name="att.placement.attribute.place">
      <optional>
         <attribute name="place">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies where this item is placed.
Suggested values include: 1] top; 2] bottom; 3] margin; 4] opposite; 5] overleaf; 6] above; 7] right; 8] below; 9] left; 10] end; 11] inline; 12] inspace</a:documentation>
            <list>
               <oneOrMore>
                  <choice>
                     <value>top</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">at the top of the page</a:documentation>
                     <value>bottom</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">at the foot of the page</a:documentation>
                     <value>margin</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">in the margin (left, right, or both)</a:documentation>
                     <value>opposite</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">on the opposite, i.e. facing, page</a:documentation>
                     <value>overleaf</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">on the other side of the leaf</a:documentation>
                     <value>above</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">above the line</a:documentation>
                     <value>right</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">to the right, e.g. to the right of a vertical line of text, or to the right of a figure</a:documentation>
                     <value>below</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">below the line</a:documentation>
                     <value>left</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">to the left, e.g. to the left of a vertical line of text, or to the left of a figure</a:documentation>
                     <value>end</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">at the end of e.g. chapter or volume.</a:documentation>
                     <value>inline</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">within the body of the text.</a:documentation>
                     <value>inspace</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">in a predefined space, for example left by an earlier scribe.</a:documentation>
                     <data type="token">
                        <param name="pattern">[^\p{C}\p{Z}]+</param>
                     </data>
                  </choice>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.typed.attributes">
      <ref name="att.typed.attribute.type"/>
      <ref name="att.typed.attribute.subtype"/>
   </define>
   <define name="att.typed.attribute.type">
      <optional>
         <attribute name="type">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes the element in some sense, using any convenient classification scheme or typology.</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.typed.attribute.subtype">
      <optional>
         <attribute name="subtype">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(subtype) provides a sub-categorization of the element, if needed</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_all-att.typed-subtypeTyped-constraint-rule-7">
      <sch:rule 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"
                xmlns="http://www.tei-c.org/ns/1.0"
                context="tei:*[@subtype]">
        <sch:assert test="@type">The <sch:name/> element should not be categorized in detail with @subtype unless also categorized in general with @type</sch:assert>
      </sch:rule>
   </pattern>
   <define name="att.pointing.attributes">
      <ref name="att.pointing.attribute.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">@target</code>, using a language tag generated according to <a xmlns="http://www.w3.org/1999/xhtml"
                  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="tei_all-att.pointing-targetLang-targetLang-constraint-rule-8">
      <sch:rule 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"
                xmlns="http://www.tei-c.org/ns/1.0"
                context="tei:*[not(self::tei:schemaSpec)][@targetLang]">
            <sch:assert test="@target">@targetLang should only be used on <sch:name/> if @target is specified.</sch:assert>
          </sch:rule>
   </pattern>
   <define name="att.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.pointing.group.attributes">
      <ref name="att.pointing.attributes"/>
      <ref name="att.typed.attributes"/>
      <ref name="att.pointing.group.attribute.domains"/>
      <ref name="att.pointing.group.attribute.targFunc"/>
   </define>
   <define name="att.pointing.group.attribute.domains">
      <optional>
         <attribute name="domains">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">optionally specifies the identifiers of the elements within which all elements indicated by the contents of this element lie.</a:documentation>
            <list>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
               <zeroOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </zeroOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.pointing.group.attribute.targFunc">
      <optional>
         <attribute name="targFunc">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(target function) describes the function of each of the values of the <code xmlns="http://www.w3.org/1999/xhtml">@target</code> attribute of the enclosed <code xmlns="http://www.w3.org/1999/xhtml">&lt;link&gt;</code>, <code xmlns="http://www.w3.org/1999/xhtml">&lt;join&gt;</code>, or <code xmlns="http://www.w3.org/1999/xhtml">&lt;alt&gt;</code> tags.</a:documentation>
            <list>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
               <zeroOrMore>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </zeroOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.scoping.attributes">
      <ref name="att.scoping.attribute.target"/>
      <ref name="att.scoping.attribute.match"/>
   </define>
   <define name="att.scoping.attribute.target">
      <optional>
         <attribute name="target">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points at one or more sets of zero or more elements each.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.scoping.attribute.match">
      <optional>
         <attribute name="match">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies an XPath selection pattern using the syntax defined in  which identifies a set of nodes, selected within the context identified by the <code xmlns="http://www.w3.org/1999/xhtml">@target</code> attribute if this is supplied, or within the context of the parent element if it is not.</a:documentation>
            <text/>
         </attribute>
      </optional>
   </define>
   <define name="att.segLike.attributes">
      <ref name="att.metrical.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.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.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 break) 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 break) 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.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="tei_all-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-9">
      <sch:rule 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"
                xmlns="http://www.tei-c.org/ns/1.0"
                context="tei:*[@spanTo]">
            <sch:assert test="id(substring(@spanTo,2)) and following::*[@xml:id=substring(current()/@spanTo,2)]">
The element indicated by @spanTo (<sch:value-of select="@spanTo"/>) must follow the current element <sch:name/>
            </sch:assert>
          </sch:rule>
   </pattern>
   <define name="att.styleDef.attributes">
      <ref name="att.styleDef.attribute.scheme"/>
      <ref name="att.styleDef.attribute.schemeVersion"/>
   </define>
   <define name="att.styleDef.attribute.scheme">
      <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">Cascading Stylesheet Language</a:documentation>
               <value>xslfo</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Extensible Stylesheet Language Formatting Objects</a:documentation>
               <value>free</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Informal free text description</a:documentation>
               <value>other</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A user-defined rendition description language</a:documentation>
            </choice>
         </attribute>
      </optional>
   </define>
   <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">@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="tei_all-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-10">
      <sch:rule 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"
                xmlns="http://www.tei-c.org/ns/1.0"
                context="tei:*[@schemeVersion]">
            <sch:assert test="@scheme and not(@scheme = 'free')">
              @schemeVersion can only be used if @scheme is specified.
            </sch:assert>
          </sch:rule>
   </pattern>
   <define name="att.timed.attributes">
      <ref name="att.duration.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="att.transcriptional.attributes">
      <ref name="att.editLike.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.citing.attributes">
      <ref name="att.citing.attribute.unit"/>
      <ref name="att.citing.attribute.from"/>
      <ref name="att.citing.attribute.to"/>
   </define>
   <define name="att.citing.attribute.unit">
      <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, e.g. columns, pages, volume, entry.
Suggested values include: 1] volume (volume); 2] issue; 3] page (page); 4] line; 5] chapter (chapter); 6] part; 7] column; 8] entry</a:documentation>
            <choice>
               <value>volume</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(volume) the element contains a volume number.</a:documentation>
               <value>issue</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the element contains an issue number, or volume and issue numbers.</a:documentation>
               <value>page</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(page) the element contains a page number or page range.</a:documentation>
               <value>line</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the element contains a line number or line range.</a:documentation>
               <value>chapter</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(chapter) the element contains a chapter indication (number and/or title)</a:documentation>
               <value>part</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the element identifies a part of a book or collection.</a:documentation>
               <value>column</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the element identifies a column.</a:documentation>
               <value>entry</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the element identifies an entry number or label in a list of entries.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </choice>
         </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">@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">@unit</code> attribute.</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</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="s"/>
         <ref name="cl"/>
         <ref name="phr"/>
         <ref name="w"/>
         <ref name="m"/>
         <ref name="c"/>
         <ref name="pc"/>
         <ref name="seg"/>
      </choice>
   </define>
   <define name="model.segLike_alternation">
      <choice>
         <ref name="s"/>
         <ref name="cl"/>
         <ref name="phr"/>
         <ref name="w"/>
         <ref name="m"/>
         <ref name="c"/>
         <ref name="pc"/>
         <ref name="seg"/>
      </choice>
   </define>
   <define name="model.segLike_sequence">
      <ref name="s"/>
      <ref name="cl"/>
      <ref name="phr"/>
      <ref name="w"/>
      <ref name="m"/>
      <ref name="c"/>
      <ref name="pc"/>
      <ref name="seg"/>
   </define>
   <define name="model.segLike_sequenceOptional">
      <optional>
         <ref name="s"/>
      </optional>
      <optional>
         <ref name="cl"/>
      </optional>
      <optional>
         <ref name="phr"/>
      </optional>
      <optional>
         <ref name="w"/>
      </optional>
      <optional>
         <ref name="m"/>
      </optional>
      <optional>
         <ref name="c"/>
      </optional>
      <optional>
         <ref name="pc"/>
      </optional>
      <optional>
         <ref name="seg"/>
      </optional>
   </define>
   <define name="model.segLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="s"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="cl"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="phr"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="w"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="m"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="c"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="pc"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="seg"/>
      </zeroOrMore>
   </define>
   <define name="model.segLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="s"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="cl"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="phr"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="w"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="m"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="c"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="pc"/>
      </oneOrMore>
      <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="emph"/>
         <ref name="distinct"/>
         <ref name="mentioned"/>
         <ref name="soCalled"/>
         <ref name="gloss"/>
         <ref name="term"/>
         <ref name="title"/>
         <ref name="code"/>
         <ref name="ident"/>
      </choice>
   </define>
   <define name="model.emphLike_alternation">
      <choice>
         <ref name="foreign"/>
         <ref name="emph"/>
         <ref name="distinct"/>
         <ref name="mentioned"/>
         <ref name="soCalled"/>
         <ref name="gloss"/>
         <ref name="term"/>
         <ref name="title"/>
         <ref name="code"/>
         <ref name="ident"/>
      </choice>
   </define>
   <define name="model.emphLike_sequence">
      <ref name="foreign"/>
      <ref name="emph"/>
      <ref name="distinct"/>
      <ref name="mentioned"/>
      <ref name="soCalled"/>
      <ref name="gloss"/>
      <ref name="term"/>
      <ref name="title"/>
      <ref name="code"/>
      <ref name="ident"/>
   </define>
   <define name="model.emphLike_sequenceOptional">
      <optional>
         <ref name="foreign"/>
      </optional>
      <optional>
         <ref name="emph"/>
      </optional>
      <optional>
         <ref name="distinct"/>
      </optional>
      <optional>
         <ref name="mentioned"/>
      </optional>
      <optional>
         <ref name="soCalled"/>
      </optional>
      <optional>
         <ref name="gloss"/>
      </optional>
      <optional>
         <ref name="term"/>
      </optional>
      <optional>
         <ref name="title"/>
      </optional>
      <optional>
         <ref name="code"/>
      </optional>
      <optional>
         <ref name="ident"/>
      </optional>
   </define>
   <define name="model.emphLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="foreign"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="emph"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="distinct"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="mentioned"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="soCalled"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="gloss"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="term"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="title"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="code"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="ident"/>
      </zeroOrMore>
   </define>
   <define name="model.emphLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="foreign"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="emph"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="distinct"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="mentioned"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="soCalled"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="gloss"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="term"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="title"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="code"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="ident"/>
      </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"/>
         <ref name="time"/>
      </choice>
   </define>
   <define name="model.dateLike_alternation">
      <choice>
         <ref name="date"/>
         <ref name="time"/>
      </choice>
   </define>
   <define name="model.dateLike_sequence">
      <ref name="date"/>
      <ref name="time"/>
   </define>
   <define name="model.dateLike_sequenceOptional">
      <optional>
         <ref name="date"/>
      </optional>
      <optional>
         <ref name="time"/>
      </optional>
   </define>
   <define name="model.dateLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="date"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="time"/>
      </zeroOrMore>
   </define>
   <define name="model.dateLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="date"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="time"/>
      </oneOrMore>
   </define>
   <define name="model.dimLike">
      <choice>
         <ref name="height"/>
         <ref name="depth"/>
         <ref name="width"/>
      </choice>
   </define>
   <define name="model.measureLike">
      <choice>
         <ref name="num"/>
         <ref name="measure"/>
         <ref name="measureGrp"/>
         <ref name="unit"/>
         <ref name="dim"/>
         <ref name="height"/>
         <ref name="depth"/>
         <ref name="width"/>
         <ref name="geo"/>
      </choice>
   </define>
   <define name="model.measureLike_alternation">
      <choice>
         <ref name="num"/>
         <ref name="measure"/>
         <ref name="measureGrp"/>
         <ref name="unit"/>
         <ref name="dim"/>
         <ref name="height"/>
         <ref name="depth"/>
         <ref name="width"/>
         <ref name="geo"/>
      </choice>
   </define>
   <define name="model.measureLike_sequence">
      <ref name="num"/>
      <ref name="measure"/>
      <ref name="measureGrp"/>
      <ref name="unit"/>
      <ref name="dim"/>
      <ref name="height"/>
      <ref name="depth"/>
      <ref name="width"/>
      <ref name="geo"/>
   </define>
   <define name="model.measureLike_sequenceOptional">
      <optional>
         <ref name="num"/>
      </optional>
      <optional>
         <ref name="measure"/>
      </optional>
      <optional>
         <ref name="measureGrp"/>
      </optional>
      <optional>
         <ref name="unit"/>
      </optional>
      <optional>
         <ref name="dim"/>
      </optional>
      <optional>
         <ref name="height"/>
      </optional>
      <optional>
         <ref name="depth"/>
      </optional>
      <optional>
         <ref name="width"/>
      </optional>
      <optional>
         <ref name="geo"/>
      </optional>
   </define>
   <define name="model.measureLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="num"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="measure"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="measureGrp"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="unit"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="dim"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="height"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="depth"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="width"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="geo"/>
      </zeroOrMore>
   </define>
   <define name="model.measureLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="num"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="measure"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="measureGrp"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="unit"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="dim"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="height"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="depth"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="width"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="geo"/>
      </oneOrMore>
   </define>
   <define name="model.egLike">
      <choice>
         <ref name="eg"/>
         <ref name="egXML"/>
      </choice>
   </define>
   <define name="model.egLike_alternation">
      <choice>
         <ref name="eg"/>
         <ref name="egXML"/>
      </choice>
   </define>
   <define name="model.egLike_sequence">
      <ref name="eg"/>
      <ref name="egXML"/>
   </define>
   <define name="model.egLike_sequenceOptional">
      <optional>
         <ref name="eg"/>
      </optional>
      <optional>
         <ref name="egXML"/>
      </optional>
   </define>
   <define name="model.egLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="eg"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="egXML"/>
      </zeroOrMore>
   </define>
   <define name="model.egLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="eg"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="egXML"/>
      </oneOrMore>
   </define>
   <define name="model.graphicLike">
      <choice>
         <ref name="media"/>
         <ref name="graphic"/>
         <ref name="binaryObject"/>
         <ref name="formula"/>
      </choice>
   </define>
   <define name="model.graphicLike_alternation">
      <choice>
         <ref name="media"/>
         <ref name="graphic"/>
         <ref name="binaryObject"/>
         <ref name="formula"/>
      </choice>
   </define>
   <define name="model.graphicLike_sequence">
      <ref name="media"/>
      <ref name="graphic"/>
      <ref name="binaryObject"/>
      <ref name="formula"/>
   </define>
   <define name="model.graphicLike_sequenceOptional">
      <optional>
         <ref name="media"/>
      </optional>
      <optional>
         <ref name="graphic"/>
      </optional>
      <optional>
         <ref name="binaryObject"/>
      </optional>
      <optional>
         <ref name="formula"/>
      </optional>
   </define>
   <define name="model.graphicLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="media"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="graphic"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="binaryObject"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="formula"/>
      </zeroOrMore>
   </define>
   <define name="model.graphicLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="media"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="graphic"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="binaryObject"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="formula"/>
      </oneOrMore>
   </define>
   <define name="model.offsetLike">
      <choice>
         <ref name="offset"/>
         <ref name="geogFeat"/>
      </choice>
   </define>
   <define name="model.offsetLike_alternation">
      <choice>
         <ref name="offset"/>
         <ref name="geogFeat"/>
      </choice>
   </define>
   <define name="model.offsetLike_sequence">
      <ref name="offset"/>
      <ref name="geogFeat"/>
   </define>
   <define name="model.offsetLike_sequenceOptional">
      <optional>
         <ref name="offset"/>
      </optional>
      <optional>
         <ref name="geogFeat"/>
      </optional>
   </define>
   <define name="model.offsetLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="offset"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="geogFeat"/>
      </zeroOrMore>
   </define>
   <define name="model.offsetLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="offset"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="geogFeat"/>
      </oneOrMore>
   </define>
   <define name="model.pPart.msdesc">
      <choice>
         <ref name="catchwords"/>
         <ref name="dimensions"/>
         <ref name="heraldry"/>
         <ref name="locus"/>
         <ref name="locusGrp"/>
         <ref name="material"/>
         <ref name="objectType"/>
         <ref name="origDate"/>
         <ref name="origPlace"/>
         <ref name="secFol"/>
         <ref name="signatures"/>
         <ref name="stamp"/>
         <ref name="watermark"/>
      </choice>
   </define>
   <define name="model.pPart.msdesc_alternation">
      <choice>
         <ref name="catchwords"/>
         <ref name="dimensions"/>
         <ref name="heraldry"/>
         <ref name="locus"/>
         <ref name="locusGrp"/>
         <ref name="material"/>
         <ref name="objectType"/>
         <ref name="origDate"/>
         <ref name="origPlace"/>
         <ref name="secFol"/>
         <ref name="signatures"/>
         <ref name="stamp"/>
         <ref name="watermark"/>
      </choice>
   </define>
   <define name="model.pPart.msdesc_sequence">
      <ref name="catchwords"/>
      <ref name="dimensions"/>
      <ref name="heraldry"/>
      <ref name="locus"/>
      <ref name="locusGrp"/>
      <ref name="material"/>
      <ref name="objectType"/>
      <ref name="origDate"/>
      <ref name="origPlace"/>
      <ref name="secFol"/>
      <ref name="signatures"/>
      <ref name="stamp"/>
      <ref name="watermark"/>
   </define>
   <define name="model.pPart.msdesc_sequenceOptional">
      <optional>
         <ref name="catchwords"/>
      </optional>
      <optional>
         <ref name="dimensions"/>
      </optional>
      <optional>
         <ref name="heraldry"/>
      </optional>
      <optional>
         <ref name="locus"/>
      </optional>
      <optional>
         <ref name="locusGrp"/>
      </optional>
      <optional>
         <ref name="material"/>
      </optional>
      <optional>
         <ref name="objectType"/>
      </optional>
      <optional>
         <ref name="origDate"/>
      </optional>
      <optional>
         <ref name="origPlace"/>
      </optional>
      <optional>
         <ref name="secFol"/>
      </optional>
      <optional>
         <ref name="signatures"/>
      </optional>
      <optional>
         <ref name="stamp"/>
      </optional>
      <optional>
         <ref name="watermark"/>
      </optional>
   </define>
   <define name="model.pPart.msdesc_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="catchwords"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="dimensions"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="heraldry"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="locus"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="locusGrp"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="material"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="objectType"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="origDate"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="origPlace"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="secFol"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="signatures"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="stamp"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="watermark"/>
      </zeroOrMore>
   </define>
   <define name="model.pPart.msdesc_sequenceRepeatable">
      <oneOrMore>
         <ref name="catchwords"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="dimensions"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="heraldry"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="locus"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="locusGrp"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="material"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="objectType"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="origDate"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="origPlace"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="secFol"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="signatures"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="stamp"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="watermark"/>
      </oneOrMore>
   </define>
   <define name="model.pPart.editorial">
      <choice>
         <ref name="choice"/>
         <ref name="abbr"/>
         <ref name="expan"/>
         <ref name="ex"/>
         <ref name="am"/>
         <ref name="subst"/>
      </choice>
   </define>
   <define name="model.pPart.editorial_alternation">
      <choice>
         <ref name="choice"/>
         <ref name="abbr"/>
         <ref name="expan"/>
         <ref name="ex"/>
         <ref name="am"/>
         <ref name="subst"/>
      </choice>
   </define>
   <define name="model.pPart.editorial_sequence">
      <ref name="choice"/>
      <ref name="abbr"/>
      <ref name="expan"/>
      <ref name="ex"/>
      <ref name="am"/>
      <ref name="subst"/>
   </define>
   <define name="model.pPart.editorial_sequenceOptional">
      <optional>
         <ref name="choice"/>
      </optional>
      <optional>
         <ref name="abbr"/>
      </optional>
      <optional>
         <ref name="expan"/>
      </optional>
      <optional>
         <ref name="ex"/>
      </optional>
      <optional>
         <ref name="am"/>
      </optional>
      <optional>
         <ref name="subst"/>
      </optional>
   </define>
   <define name="model.pPart.editorial_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="choice"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="abbr"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="expan"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="ex"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="am"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="subst"/>
      </zeroOrMore>
   </define>
   <define name="model.pPart.editorial_sequenceRepeatable">
      <oneOrMore>
         <ref name="choice"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="abbr"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="expan"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="ex"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="am"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="subst"/>
      </oneOrMore>
   </define>
   <define name="model.pPart.transcriptional">
      <choice>
         <ref name="sic"/>
         <ref name="corr"/>
         <ref name="reg"/>
         <ref name="orig"/>
         <ref name="add"/>
         <ref name="del"/>
         <ref name="unclear"/>
         <ref name="damage"/>
         <ref name="handShift"/>
         <ref name="restore"/>
         <ref name="supplied"/>
         <ref name="surplus"/>
         <ref name="secl"/>
         <ref name="mod"/>
         <ref name="redo"/>
         <ref name="retrace"/>
         <ref name="undo"/>
      </choice>
   </define>
   <define name="model.pPart.transcriptional_alternation">
      <choice>
         <ref name="sic"/>
         <ref name="corr"/>
         <ref name="reg"/>
         <ref name="orig"/>
         <ref name="add"/>
         <ref name="del"/>
         <ref name="unclear"/>
         <ref name="damage"/>
         <ref name="handShift"/>
         <ref name="restore"/>
         <ref name="supplied"/>
         <ref name="surplus"/>
         <ref name="secl"/>
         <ref name="mod"/>
         <ref name="redo"/>
         <ref name="retrace"/>
         <ref name="undo"/>
      </choice>
   </define>
   <define name="model.pPart.transcriptional_sequence">
      <ref name="sic"/>
      <ref name="corr"/>
      <ref name="reg"/>
      <ref name="orig"/>
      <ref name="add"/>
      <ref name="del"/>
      <ref name="unclear"/>
      <ref name="damage"/>
      <ref name="handShift"/>
      <ref name="restore"/>
      <ref name="supplied"/>
      <ref name="surplus"/>
      <ref name="secl"/>
      <ref name="mod"/>
      <ref name="redo"/>
      <ref name="retrace"/>
      <ref name="undo"/>
   </define>
   <define name="model.pPart.transcriptional_sequenceOptional">
      <optional>
         <ref name="sic"/>
      </optional>
      <optional>
         <ref name="corr"/>
      </optional>
      <optional>
         <ref name="reg"/>
      </optional>
      <optional>
         <ref name="orig"/>
      </optional>
      <optional>
         <ref name="add"/>
      </optional>
      <optional>
         <ref name="del"/>
      </optional>
      <optional>
         <ref name="unclear"/>
      </optional>
      <optional>
         <ref name="damage"/>
      </optional>
      <optional>
         <ref name="handShift"/>
      </optional>
      <optional>
         <ref name="restore"/>
      </optional>
      <optional>
         <ref name="supplied"/>
      </optional>
      <optional>
         <ref name="surplus"/>
      </optional>
      <optional>
         <ref name="secl"/>
      </optional>
      <optional>
         <ref name="mod"/>
      </optional>
      <optional>
         <ref name="redo"/>
      </optional>
      <optional>
         <ref name="retrace"/>
      </optional>
      <optional>
         <ref name="undo"/>
      </optional>
   </define>
   <define name="model.pPart.transcriptional_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="sic"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="corr"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="reg"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="orig"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="add"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="del"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="unclear"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="damage"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="handShift"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="restore"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="supplied"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="surplus"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="secl"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="mod"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="redo"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="retrace"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="undo"/>
      </zeroOrMore>
   </define>
   <define name="model.pPart.transcriptional_sequenceRepeatable">
      <oneOrMore>
         <ref name="sic"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="corr"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="reg"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="orig"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="add"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="del"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="unclear"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="damage"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="handShift"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="restore"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="supplied"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="surplus"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="secl"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="mod"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="redo"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="retrace"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="undo"/>
      </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="choice"/>
         <ref name="add"/>
         <ref name="del"/>
         <ref name="unclear"/>
         <ref name="w"/>
         <ref name="c"/>
         <ref name="pc"/>
         <ref name="zone"/>
         <ref name="path"/>
         <ref name="damage"/>
         <ref name="handShift"/>
         <ref name="restore"/>
         <ref name="line"/>
         <ref name="mod"/>
         <ref name="redo"/>
         <ref name="retrace"/>
         <ref name="undo"/>
         <ref name="seg"/>
      </choice>
   </define>
   <define name="model.ptrLike">
      <choice>
         <ref name="ptr"/>
         <ref name="ref"/>
         <ref name="listRef"/>
      </choice>
   </define>
   <define name="model.ptrLike_alternation">
      <choice>
         <ref name="ptr"/>
         <ref name="ref"/>
         <ref name="listRef"/>
      </choice>
   </define>
   <define name="model.ptrLike_sequence">
      <ref name="ptr"/>
      <ref name="ref"/>
      <ref name="listRef"/>
   </define>
   <define name="model.ptrLike_sequenceOptional">
      <optional>
         <ref name="ptr"/>
      </optional>
      <optional>
         <ref name="ref"/>
      </optional>
      <optional>
         <ref name="listRef"/>
      </optional>
   </define>
   <define name="model.ptrLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="ptr"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="ref"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="listRef"/>
      </zeroOrMore>
   </define>
   <define name="model.ptrLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="ptr"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="ref"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="listRef"/>
      </oneOrMore>
   </define>
   <define name="model.lPart">
      <choice>
         <ref name="caesura"/>
         <ref name="rhyme"/>
      </choice>
   </define>
   <define name="model.lPart_alternation">
      <choice>
         <ref name="caesura"/>
         <ref name="rhyme"/>
      </choice>
   </define>
   <define name="model.lPart_sequence">
      <ref name="caesura"/>
      <ref name="rhyme"/>
   </define>
   <define name="model.lPart_sequenceOptional">
      <optional>
         <ref name="caesura"/>
      </optional>
      <optional>
         <ref name="rhyme"/>
      </optional>
   </define>
   <define name="model.lPart_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="caesura"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="rhyme"/>
      </zeroOrMore>
   </define>
   <define name="model.lPart_sequenceRepeatable">
      <oneOrMore>
         <ref name="caesura"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="rhyme"/>
      </oneOrMore>
   </define>
   <define name="model.global.meta">
      <choice>
         <ref name="index"/>
         <ref name="span"/>
         <ref name="spanGrp"/>
         <ref name="interp"/>
         <ref name="interpGrp"/>
         <ref name="substJoin"/>
         <ref name="listTranspose"/>
         <ref name="link"/>
         <ref name="linkGrp"/>
         <ref name="timeline"/>
         <ref name="join"/>
         <ref name="joinGrp"/>
         <ref name="alt"/>
         <ref name="altGrp"/>
         <ref name="fs"/>
         <ref name="fLib"/>
         <ref name="fvLib"/>
         <ref name="precision"/>
         <ref name="certainty"/>
         <ref name="respons"/>
      </choice>
   </define>
   <define name="model.global.meta_alternation">
      <choice>
         <ref name="index"/>
         <ref name="span"/>
         <ref name="spanGrp"/>
         <ref name="interp"/>
         <ref name="interpGrp"/>
         <ref name="substJoin"/>
         <ref name="listTranspose"/>
         <ref name="link"/>
         <ref name="linkGrp"/>
         <ref name="timeline"/>
         <ref name="join"/>
         <ref name="joinGrp"/>
         <ref name="alt"/>
         <ref name="altGrp"/>
         <ref name="fs"/>
         <ref name="fLib"/>
         <ref name="fvLib"/>
         <ref name="precision"/>
         <ref name="certainty"/>
         <ref name="respons"/>
      </choice>
   </define>
   <define name="model.global.meta_sequence">
      <ref name="index"/>
      <ref name="span"/>
      <ref name="spanGrp"/>
      <ref name="interp"/>
      <ref name="interpGrp"/>
      <ref name="substJoin"/>
      <ref name="listTranspose"/>
      <ref name="link"/>
      <ref name="linkGrp"/>
      <ref name="timeline"/>
      <ref name="join"/>
      <ref name="joinGrp"/>
      <ref name="alt"/>
      <ref name="altGrp"/>
      <ref name="fs"/>
      <ref name="fLib"/>
      <ref name="fvLib"/>
      <ref name="precision"/>
      <ref name="certainty"/>
      <ref name="respons"/>
   </define>
   <define name="model.global.meta_sequenceOptional">
      <optional>
         <ref name="index"/>
      </optional>
      <optional>
         <ref name="span"/>
      </optional>
      <optional>
         <ref name="spanGrp"/>
      </optional>
      <optional>
         <ref name="interp"/>
      </optional>
      <optional>
         <ref name="interpGrp"/>
      </optional>
      <optional>
         <ref name="substJoin"/>
      </optional>
      <optional>
         <ref name="listTranspose"/>
      </optional>
      <optional>
         <ref name="link"/>
      </optional>
      <optional>
         <ref name="linkGrp"/>
      </optional>
      <optional>
         <ref name="timeline"/>
      </optional>
      <optional>
         <ref name="join"/>
      </optional>
      <optional>
         <ref name="joinGrp"/>
      </optional>
      <optional>
         <ref name="alt"/>
      </optional>
      <optional>
         <ref name="altGrp"/>
      </optional>
      <optional>
         <ref name="fs"/>
      </optional>
      <optional>
         <ref name="fLib"/>
      </optional>
      <optional>
         <ref name="fvLib"/>
      </optional>
      <optional>
         <ref name="precision"/>
      </optional>
      <optional>
         <ref name="certainty"/>
      </optional>
      <optional>
         <ref name="respons"/>
      </optional>
   </define>
   <define name="model.global.meta_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="index"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="span"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="spanGrp"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="interp"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="interpGrp"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="substJoin"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="listTranspose"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="link"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="linkGrp"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="timeline"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="join"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="joinGrp"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="alt"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="altGrp"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="fs"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="fLib"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="fvLib"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="precision"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="certainty"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="respons"/>
      </zeroOrMore>
   </define>
   <define name="model.global.meta_sequenceRepeatable">
      <oneOrMore>
         <ref name="index"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="span"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="spanGrp"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="interp"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="interpGrp"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="substJoin"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="listTranspose"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="link"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="linkGrp"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="timeline"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="join"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="joinGrp"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="alt"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="altGrp"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="fs"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="fLib"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="fvLib"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="precision"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="certainty"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="respons"/>
      </oneOrMore>
   </define>
   <define name="model.milestoneLike">
      <choice>
         <ref name="milestone"/>
         <ref name="gb"/>
         <ref name="pb"/>
         <ref name="lb"/>
         <ref name="cb"/>
         <ref name="fw"/>
         <ref name="anchor"/>
      </choice>
   </define>
   <define name="model.milestoneLike_alternation">
      <choice>
         <ref name="milestone"/>
         <ref name="gb"/>
         <ref name="pb"/>
         <ref name="lb"/>
         <ref name="cb"/>
         <ref name="fw"/>
         <ref name="anchor"/>
      </choice>
   </define>
   <define name="model.milestoneLike_sequence">
      <ref name="milestone"/>
      <ref name="gb"/>
      <ref name="pb"/>
      <ref name="lb"/>
      <ref name="cb"/>
      <ref name="fw"/>
      <ref name="anchor"/>
   </define>
   <define name="model.milestoneLike_sequenceOptional">
      <optional>
         <ref name="milestone"/>
      </optional>
      <optional>
         <ref name="gb"/>
      </optional>
      <optional>
         <ref name="pb"/>
      </optional>
      <optional>
         <ref name="lb"/>
      </optional>
      <optional>
         <ref name="cb"/>
      </optional>
      <optional>
         <ref name="fw"/>
      </optional>
      <optional>
         <ref name="anchor"/>
      </optional>
   </define>
   <define name="model.milestoneLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="milestone"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="gb"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="pb"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="lb"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="cb"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="fw"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="anchor"/>
      </zeroOrMore>
   </define>
   <define name="model.milestoneLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="milestone"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="gb"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="pb"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="lb"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="cb"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="fw"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="anchor"/>
      </oneOrMore>
   </define>
   <define name="model.gLike">
      <choice>
         <ref name="g"/>
      </choice>
   </define>
   <define name="model.oddDecl">
      <choice>
         <ref name="moduleSpec"/>
         <ref name="specGrp"/>
         <ref name="specGrpRef"/>
         <ref name="elementSpec"/>
         <ref name="classSpec"/>
         <ref name="dataSpec"/>
         <ref name="macroSpec"/>
         <ref name="outputRendition"/>
         <ref name="constraintSpec"/>
      </choice>
   </define>
   <define name="model.oddDecl_alternation">
      <choice>
         <ref name="moduleSpec"/>
         <ref name="specGrp"/>
         <ref name="specGrpRef"/>
         <ref name="elementSpec"/>
         <ref name="classSpec"/>
         <ref name="dataSpec"/>
         <ref name="macroSpec"/>
         <ref name="outputRendition"/>
         <ref name="constraintSpec"/>
      </choice>
   </define>
   <define name="model.oddDecl_sequence">
      <ref name="moduleSpec"/>
      <ref name="specGrp"/>
      <ref name="specGrpRef"/>
      <ref name="elementSpec"/>
      <ref name="classSpec"/>
      <ref name="dataSpec"/>
      <ref name="macroSpec"/>
      <ref name="outputRendition"/>
      <ref name="constraintSpec"/>
   </define>
   <define name="model.oddDecl_sequenceOptional">
      <optional>
         <ref name="moduleSpec"/>
      </optional>
      <optional>
         <ref name="specGrp"/>
      </optional>
      <optional>
         <ref name="specGrpRef"/>
      </optional>
      <optional>
         <ref name="elementSpec"/>
      </optional>
      <optional>
         <ref name="classSpec"/>
      </optional>
      <optional>
         <ref name="dataSpec"/>
      </optional>
      <optional>
         <ref name="macroSpec"/>
      </optional>
      <optional>
         <ref name="outputRendition"/>
      </optional>
      <optional>
         <ref name="constraintSpec"/>
      </optional>
   </define>
   <define name="model.oddDecl_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="moduleSpec"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="specGrp"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="specGrpRef"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="elementSpec"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="classSpec"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="dataSpec"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="macroSpec"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="outputRendition"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="constraintSpec"/>
      </zeroOrMore>
   </define>
   <define name="model.oddDecl_sequenceRepeatable">
      <oneOrMore>
         <ref name="moduleSpec"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="specGrp"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="specGrpRef"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="elementSpec"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="classSpec"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="dataSpec"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="macroSpec"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="outputRendition"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="constraintSpec"/>
      </oneOrMore>
   </define>
   <define name="model.oddRef">
      <choice>
         <ref name="classRef"/>
         <ref name="elementRef"/>
         <ref name="macroRef"/>
         <ref name="moduleRef"/>
         <ref name="dataRef"/>
      </choice>
   </define>
   <define name="model.phrase.xml">
      <choice>
         <ref name="att"/>
         <ref name="gi"/>
         <ref name="tag"/>
         <ref name="val"/>
      </choice>
   </define>
   <define name="model.phrase.xml_alternation">
      <choice>
         <ref name="att"/>
         <ref name="gi"/>
         <ref name="tag"/>
         <ref name="val"/>
      </choice>
   </define>
   <define name="model.phrase.xml_sequence">
      <ref name="att"/>
      <ref name="gi"/>
      <ref name="tag"/>
      <ref name="val"/>
   </define>
   <define name="model.phrase.xml_sequenceOptional">
      <optional>
         <ref name="att"/>
      </optional>
      <optional>
         <ref name="gi"/>
      </optional>
      <optional>
         <ref name="tag"/>
      </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="tag"/>
      </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="tag"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="val"/>
      </oneOrMore>
   </define>
   <define name="model.specDescLike">
      <choice>
         <ref name="specList"/>
         <ref name="specDesc"/>
      </choice>
   </define>
   <define name="model.specDescLike_alternation">
      <choice>
         <ref name="specList"/>
         <ref name="specDesc"/>
      </choice>
   </define>
   <define name="model.specDescLike_sequence">
      <ref name="specList"/>
      <ref name="specDesc"/>
   </define>
   <define name="model.specDescLike_sequenceOptional">
      <optional>
         <ref name="specList"/>
      </optional>
      <optional>
         <ref name="specDesc"/>
      </optional>
   </define>
   <define name="model.specDescLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="specList"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="specDesc"/>
      </zeroOrMore>
   </define>
   <define name="model.specDescLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="specList"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="specDesc"/>
      </oneOrMore>
   </define>
   <define name="model.biblLike">
      <choice>
         <ref name="bibl"/>
         <ref name="biblStruct"/>
         <ref name="listBibl"/>
         <ref name="biblFull"/>
         <ref name="msDesc"/>
      </choice>
   </define>
   <define name="model.biblLike_alternation">
      <choice>
         <ref name="bibl"/>
         <ref name="biblStruct"/>
         <ref name="listBibl"/>
         <ref name="biblFull"/>
         <ref name="msDesc"/>
      </choice>
   </define>
   <define name="model.biblLike_sequence">
      <ref name="bibl"/>
      <ref name="biblStruct"/>
      <ref name="listBibl"/>
      <ref name="biblFull"/>
      <ref name="msDesc"/>
   </define>
   <define name="model.biblLike_sequenceOptional">
      <optional>
         <ref name="bibl"/>
      </optional>
      <optional>
         <ref name="biblStruct"/>
      </optional>
      <optional>
         <ref name="listBibl"/>
      </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="biblStruct"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="listBibl"/>
      </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="biblStruct"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="listBibl"/>
      </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"/>
         <ref name="label"/>
      </choice>
   </define>
   <define name="model.labelLike_alternation">
      <choice>
         <ref name="desc"/>
         <ref name="label"/>
      </choice>
   </define>
   <define name="model.labelLike_sequence">
      <ref name="desc"/>
      <ref name="label"/>
   </define>
   <define name="model.labelLike_sequenceOptional">
      <optional>
         <ref name="desc"/>
      </optional>
      <optional>
         <ref name="label"/>
      </optional>
   </define>
   <define name="model.labelLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="desc"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="label"/>
      </zeroOrMore>
   </define>
   <define name="model.labelLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="desc"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="label"/>
      </oneOrMore>
   </define>
   <define name="model.listLike">
      <choice>
         <ref name="list"/>
         <ref name="listApp"/>
         <ref name="listWit"/>
         <ref name="listOrg"/>
         <ref name="listEvent"/>
         <ref name="listPerson"/>
         <ref name="listPlace"/>
         <ref name="listRelation"/>
         <ref name="listObject"/>
         <ref name="listNym"/>
         <ref name="table"/>
      </choice>
   </define>
   <define name="model.listLike_alternation">
      <choice>
         <ref name="list"/>
         <ref name="listApp"/>
         <ref name="listWit"/>
         <ref name="listOrg"/>
         <ref name="listEvent"/>
         <ref name="listPerson"/>
         <ref name="listPlace"/>
         <ref name="listRelation"/>
         <ref name="listObject"/>
         <ref name="listNym"/>
         <ref name="table"/>
      </choice>
   </define>
   <define name="model.listLike_sequence">
      <ref name="list"/>
      <ref name="listApp"/>
      <ref name="listWit"/>
      <ref name="listOrg"/>
      <ref name="listEvent"/>
      <ref name="listPerson"/>
      <ref name="listPlace"/>
      <ref name="listRelation"/>
      <ref name="listObject"/>
      <ref name="listNym"/>
      <ref name="table"/>
   </define>
   <define name="model.listLike_sequenceOptional">
      <optional>
         <ref name="list"/>
      </optional>
      <optional>
         <ref name="listApp"/>
      </optional>
      <optional>
         <ref name="listWit"/>
      </optional>
      <optional>
         <ref name="listOrg"/>
      </optional>
      <optional>
         <ref name="listEvent"/>
      </optional>
      <optional>
         <ref name="listPerson"/>
      </optional>
      <optional>
         <ref name="listPlace"/>
      </optional>
      <optional>
         <ref name="listRelation"/>
      </optional>
      <optional>
         <ref name="listObject"/>
      </optional>
      <optional>
         <ref name="listNym"/>
      </optional>
      <optional>
         <ref name="table"/>
      </optional>
   </define>
   <define name="model.listLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="list"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="listApp"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="listWit"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="listOrg"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="listEvent"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="listPerson"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="listPlace"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="listRelation"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="listObject"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="listNym"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="table"/>
      </zeroOrMore>
   </define>
   <define name="model.listLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="list"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="listApp"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="listWit"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="listOrg"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="listEvent"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="listPerson"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="listPlace"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="listRelation"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="listObject"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="listNym"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="table"/>
      </oneOrMore>
   </define>
   <define name="model.noteLike">
      <choice>
         <ref name="note"/>
         <ref name="noteGrp"/>
      </choice>
   </define>
   <define name="model.noteLike_alternation">
      <choice>
         <ref name="note"/>
         <ref name="noteGrp"/>
      </choice>
   </define>
   <define name="model.noteLike_sequence">
      <ref name="note"/>
      <ref name="noteGrp"/>
   </define>
   <define name="model.noteLike_sequenceOptional">
      <optional>
         <ref name="note"/>
      </optional>
      <optional>
         <ref name="noteGrp"/>
      </optional>
   </define>
   <define name="model.noteLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="note"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="noteGrp"/>
      </zeroOrMore>
   </define>
   <define name="model.noteLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="note"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="noteGrp"/>
      </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">
      <choice>
         <ref name="stage"/>
         <ref name="move"/>
         <ref name="view"/>
         <ref name="camera"/>
         <ref name="sound"/>
         <ref name="caption"/>
         <ref name="tech"/>
      </choice>
   </define>
   <define name="model.stageLike_alternation">
      <choice>
         <ref name="stage"/>
         <ref name="move"/>
         <ref name="view"/>
         <ref name="camera"/>
         <ref name="sound"/>
         <ref name="caption"/>
         <ref name="tech"/>
      </choice>
   </define>
   <define name="model.stageLike_sequence">
      <ref name="stage"/>
      <ref name="move"/>
      <ref name="view"/>
      <ref name="camera"/>
      <ref name="sound"/>
      <ref name="caption"/>
      <ref name="tech"/>
   </define>
   <define name="model.stageLike_sequenceOptional">
      <optional>
         <ref name="stage"/>
      </optional>
      <optional>
         <ref name="move"/>
      </optional>
      <optional>
         <ref name="view"/>
      </optional>
      <optional>
         <ref name="camera"/>
      </optional>
      <optional>
         <ref name="sound"/>
      </optional>
      <optional>
         <ref name="caption"/>
      </optional>
      <optional>
         <ref name="tech"/>
      </optional>
   </define>
   <define name="model.stageLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="stage"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="move"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="view"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="camera"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="sound"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="caption"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="tech"/>
      </zeroOrMore>
   </define>
   <define name="model.stageLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="stage"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="move"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="view"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="camera"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="sound"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="caption"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="tech"/>
      </oneOrMore>
   </define>
   <define name="model.featureVal.complex">
      <choice>
         <ref name="fs"/>
         <ref name="vColl"/>
         <ref name="vNot"/>
         <ref name="vMerge"/>
      </choice>
   </define>
   <define name="model.featureVal.single">
      <choice>
         <ref name="binary"/>
         <ref name="symbol"/>
         <ref name="numeric"/>
         <ref name="string"/>
         <ref name="vLabel"/>
         <ref name="default"/>
         <ref name="vAlt"/>
      </choice>
   </define>
   <define name="model.entryPart">
      <choice>
         <ref name="superEntry"/>
         <ref name="hom"/>
         <ref name="sense"/>
         <ref name="form"/>
         <ref name="orth"/>
         <ref name="pron"/>
         <ref name="hyph"/>
         <ref name="syll"/>
         <ref name="gramGrp"/>
         <ref name="pos"/>
         <ref name="subc"/>
         <ref name="colloc"/>
         <ref name="def"/>
         <ref name="etym"/>
         <ref name="usg"/>
         <ref name="lbl"/>
         <ref name="xr"/>
         <ref name="re"/>
      </choice>
   </define>
   <define name="model.entryPart.top">
      <choice>
         <ref name="model.biblLike"/>
         <ref name="cit"/>
         <ref name="entry"/>
         <ref name="dictScrap"/>
         <ref name="form"/>
         <ref name="gramGrp"/>
         <ref name="def"/>
         <ref name="etym"/>
         <ref name="usg"/>
         <ref name="lbl"/>
         <ref name="xr"/>
         <ref name="re"/>
      </choice>
   </define>
   <define name="model.eventLike">
      <choice>
         <ref name="event"/>
         <ref name="listEvent"/>
      </choice>
   </define>
   <define name="model.global.edit">
      <choice>
         <ref name="gap"/>
         <ref name="ellipsis"/>
         <ref name="addSpan"/>
         <ref name="damageSpan"/>
         <ref name="delSpan"/>
         <ref name="space"/>
         <ref name="app"/>
         <ref name="witDetail"/>
      </choice>
   </define>
   <define name="model.global.edit_alternation">
      <choice>
         <ref name="gap"/>
         <ref name="ellipsis"/>
         <ref name="addSpan"/>
         <ref name="damageSpan"/>
         <ref name="delSpan"/>
         <ref name="space"/>
         <ref name="app"/>
         <ref name="witDetail"/>
      </choice>
   </define>
   <define name="model.global.edit_sequence">
      <ref name="gap"/>
      <ref name="ellipsis"/>
      <ref name="addSpan"/>
      <ref name="damageSpan"/>
      <ref name="delSpan"/>
      <ref name="space"/>
      <ref name="app"/>
      <ref name="witDetail"/>
   </define>
   <define name="model.global.edit_sequenceOptional">
      <optional>
         <ref name="gap"/>
      </optional>
      <optional>
         <ref name="ellipsis"/>
      </optional>
      <optional>
         <ref name="addSpan"/>
      </optional>
      <optional>
         <ref name="damageSpan"/>
      </optional>
      <optional>
         <ref name="delSpan"/>
      </optional>
      <optional>
         <ref name="space"/>
      </optional>
      <optional>
         <ref name="app"/>
      </optional>
      <optional>
         <ref name="witDetail"/>
      </optional>
   </define>
   <define name="model.global.edit_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="gap"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="ellipsis"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="addSpan"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="damageSpan"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="delSpan"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="space"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="app"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="witDetail"/>
      </zeroOrMore>
   </define>
   <define name="model.global.edit_sequenceRepeatable">
      <oneOrMore>
         <ref name="gap"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="ellipsis"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="addSpan"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="damageSpan"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="delSpan"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="space"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="app"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="witDetail"/>
      </oneOrMore>
   </define>
   <define name="model.divPart">
      <choice>
         <ref name="model.lLike"/>
         <ref name="model.pLike"/>
         <ref name="lg"/>
         <ref name="sp"/>
         <ref name="spGrp"/>
         <ref name="model.divPart.spoken"/>
         <ref name="graph"/>
         <ref name="tree"/>
         <ref name="eTree"/>
         <ref name="forest"/>
         <ref name="listForest"/>
      </choice>
   </define>
   <define name="model.persStateLike">
      <choice>
         <ref name="persName"/>
         <ref name="affiliation"/>
         <ref name="age"/>
         <ref name="education"/>
         <ref name="faith"/>
         <ref name="floruit"/>
         <ref name="gender"/>
         <ref name="langKnowledge"/>
         <ref name="nationality"/>
         <ref name="occupation"/>
         <ref name="persona"/>
         <ref name="persPronouns"/>
         <ref name="residence"/>
         <ref name="sex"/>
         <ref name="socecStatus"/>
         <ref name="state"/>
         <ref name="trait"/>
      </choice>
   </define>
   <define name="model.personLike">
      <choice>
         <ref name="org"/>
         <ref name="person"/>
         <ref name="personGrp"/>
      </choice>
   </define>
   <define name="model.personPart">
      <choice>
         <ref name="model.biblLike"/>
         <ref name="model.eventLike"/>
         <ref name="model.persStateLike"/>
         <ref name="name"/>
         <ref name="idno"/>
         <ref name="birth"/>
         <ref name="death"/>
      </choice>
   </define>
   <define name="model.placeNamePart">
      <choice>
         <ref name="placeName"/>
         <ref name="bloc"/>
         <ref name="country"/>
         <ref name="region"/>
         <ref name="settlement"/>
         <ref name="district"/>
         <ref name="geogName"/>
      </choice>
   </define>
   <define name="model.placeNamePart_alternation">
      <choice>
         <ref name="placeName"/>
         <ref name="bloc"/>
         <ref name="country"/>
         <ref name="region"/>
         <ref name="settlement"/>
         <ref name="district"/>
         <ref name="geogName"/>
      </choice>
   </define>
   <define name="model.placeNamePart_sequence">
      <ref name="placeName"/>
      <ref name="bloc"/>
      <ref name="country"/>
      <ref name="region"/>
      <ref name="settlement"/>
      <ref name="district"/>
      <ref name="geogName"/>
   </define>
   <define name="model.placeNamePart_sequenceOptional">
      <optional>
         <ref name="placeName"/>
      </optional>
      <optional>
         <ref name="bloc"/>
      </optional>
      <optional>
         <ref name="country"/>
      </optional>
      <optional>
         <ref name="region"/>
      </optional>
      <optional>
         <ref name="settlement"/>
      </optional>
      <optional>
         <ref name="district"/>
      </optional>
      <optional>
         <ref name="geogName"/>
      </optional>
   </define>
   <define name="model.placeNamePart_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="placeName"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="bloc"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="country"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="region"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="settlement"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="district"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="geogName"/>
      </zeroOrMore>
   </define>
   <define name="model.placeNamePart_sequenceRepeatable">
      <oneOrMore>
         <ref name="placeName"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="bloc"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="country"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="region"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="settlement"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="district"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="geogName"/>
      </oneOrMore>
   </define>
   <define name="model.placeStateLike">
      <choice>
         <ref name="model.placeNamePart"/>
         <ref name="climate"/>
         <ref name="location"/>
         <ref name="population"/>
         <ref name="state"/>
         <ref name="terrain"/>
         <ref name="trait"/>
      </choice>
   </define>
   <define name="model.placeStateLike_alternation">
      <choice>
         <ref name="model.placeNamePart_alternation"/>
         <ref name="climate"/>
         <ref name="location"/>
         <ref name="population"/>
         <ref name="state"/>
         <ref name="terrain"/>
         <ref name="trait"/>
      </choice>
   </define>
   <define name="model.placeStateLike_sequence">
      <ref name="model.placeNamePart_sequence"/>
      <ref name="climate"/>
      <ref name="location"/>
      <ref name="population"/>
      <ref name="state"/>
      <ref name="terrain"/>
      <ref name="trait"/>
   </define>
   <define name="model.placeStateLike_sequenceOptional">
      <optional>
         <ref name="model.placeNamePart_sequenceOptional"/>
      </optional>
      <optional>
         <ref name="climate"/>
      </optional>
      <optional>
         <ref name="location"/>
      </optional>
      <optional>
         <ref name="population"/>
      </optional>
      <optional>
         <ref name="state"/>
      </optional>
      <optional>
         <ref name="terrain"/>
      </optional>
      <optional>
         <ref name="trait"/>
      </optional>
   </define>
   <define name="model.placeStateLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="model.placeNamePart_sequenceOptionalRepeatable"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="climate"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="location"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="population"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="state"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="terrain"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="trait"/>
      </zeroOrMore>
   </define>
   <define name="model.placeStateLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="model.placeNamePart_sequenceRepeatable"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="climate"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="location"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="population"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="state"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="terrain"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="trait"/>
      </oneOrMore>
   </define>
   <define name="model.orgPart">
      <choice>
         <ref name="model.eventLike"/>
         <ref name="listOrg"/>
         <ref name="listPerson"/>
         <ref name="listPlace"/>
      </choice>
   </define>
   <define name="model.publicationStmtPart.agency">
      <choice>
         <ref name="publisher"/>
         <ref name="distributor"/>
         <ref name="authority"/>
      </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">
      <choice>
         <ref name="precision"/>
         <ref name="certainty"/>
         <ref name="respons"/>
      </choice>
   </define>
   <define name="model.descLike">
      <choice>
         <ref name="desc"/>
      </choice>
   </define>
   <define name="model.glossLike">
      <choice>
         <ref name="gloss"/>
         <ref name="equiv"/>
         <ref name="altIdent"/>
      </choice>
   </define>
   <define name="model.quoteLike">
      <choice>
         <ref name="quote"/>
         <ref name="cit"/>
      </choice>
   </define>
   <define name="model.quoteLike_alternation">
      <choice>
         <ref name="quote"/>
         <ref name="cit"/>
      </choice>
   </define>
   <define name="model.quoteLike_sequence">
      <ref name="quote"/>
      <ref name="cit"/>
   </define>
   <define name="model.quoteLike_sequenceOptional">
      <optional>
         <ref name="quote"/>
      </optional>
      <optional>
         <ref name="cit"/>
      </optional>
   </define>
   <define name="model.quoteLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="quote"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="cit"/>
      </zeroOrMore>
   </define>
   <define name="model.quoteLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="quote"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="cit"/>
      </oneOrMore>
   </define>
   <define name="model.attributable">
      <choice>
         <ref name="model.quoteLike"/>
         <ref name="said"/>
         <ref name="floatingText"/>
      </choice>
   </define>
   <define name="model.attributable_alternation">
      <choice>
         <ref name="model.quoteLike_alternation"/>
         <ref name="said"/>
         <ref name="floatingText"/>
      </choice>
   </define>
   <define name="model.attributable_sequence">
      <ref name="model.quoteLike_sequence"/>
      <ref name="said"/>
      <ref name="floatingText"/>
   </define>
   <define name="model.attributable_sequenceOptional">
      <optional>
         <ref name="model.quoteLike_sequenceOptional"/>
      </optional>
      <optional>
         <ref name="said"/>
      </optional>
      <optional>
         <ref name="floatingText"/>
      </optional>
   </define>
   <define name="model.attributable_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="model.quoteLike_sequenceOptionalRepeatable"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="said"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="floatingText"/>
      </zeroOrMore>
   </define>
   <define name="model.attributable_sequenceRepeatable">
      <oneOrMore>
         <ref name="model.quoteLike_sequenceRepeatable"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="said"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="floatingText"/>
      </oneOrMore>
   </define>
   <define name="model.respLike">
      <choice>
         <ref name="author"/>
         <ref name="editor"/>
         <ref name="respStmt"/>
         <ref name="meeting"/>
         <ref name="sponsor"/>
         <ref name="funder"/>
         <ref name="principal"/>
      </choice>
   </define>
   <define name="model.divWrapper">
      <choice>
         <ref name="meeting"/>
         <ref name="byline"/>
         <ref name="dateline"/>
         <ref name="argument"/>
         <ref name="epigraph"/>
         <ref name="salute"/>
         <ref name="docAuthor"/>
         <ref name="docDate"/>
      </choice>
   </define>
   <define name="model.divTopPart">
      <choice>
         <ref name="model.headLike"/>
         <ref name="opener"/>
         <ref name="signed"/>
      </choice>
   </define>
   <define name="model.divTop">
      <choice>
         <ref name="model.divWrapper"/>
         <ref name="model.divTopPart"/>
      </choice>
   </define>
   <define name="model.frontPart.drama">
      <choice>
         <ref name="set"/>
         <ref name="prologue"/>
         <ref name="epilogue"/>
         <ref name="performance"/>
         <ref name="castList"/>
      </choice>
   </define>
   <define name="model.pLike.front">
      <choice>
         <ref name="head"/>
         <ref name="byline"/>
         <ref name="dateline"/>
         <ref name="argument"/>
         <ref name="epigraph"/>
         <ref name="docTitle"/>
         <ref name="titlePart"/>
         <ref name="docAuthor"/>
         <ref name="docEdition"/>
         <ref name="docImprint"/>
         <ref name="docDate"/>
      </choice>
   </define>
   <define name="model.divBottomPart">
      <choice>
         <ref name="trailer"/>
         <ref name="closer"/>
         <ref name="signed"/>
         <ref name="postscript"/>
      </choice>
   </define>
   <define name="model.divBottom">
      <choice>
         <ref name="model.divWrapper"/>
         <ref name="model.divBottomPart"/>
      </choice>
   </define>
   <define name="model.titlepagePart">
      <choice>
         <ref name="graphic"/>
         <ref name="binaryObject"/>
         <ref name="byline"/>
         <ref name="argument"/>
         <ref name="epigraph"/>
         <ref name="docTitle"/>
         <ref name="titlePart"/>
         <ref name="docAuthor"/>
         <ref name="imprimatur"/>
         <ref name="docEdition"/>
         <ref name="docImprint"/>
         <ref name="docDate"/>
      </choice>
   </define>
   <define name="model.msQuoteLike">
      <choice>
         <ref name="title"/>
         <ref name="colophon"/>
         <ref name="explicit"/>
         <ref name="finalRubric"/>
         <ref name="incipit"/>
         <ref name="rubric"/>
      </choice>
   </define>
   <define name="model.msItemPart">
      <choice>
         <ref name="model.biblLike"/>
         <ref name="model.quoteLike"/>
         <ref name="model.respLike"/>
         <ref name="model.msQuoteLike"/>
         <ref name="textLang"/>
         <ref name="idno"/>
         <ref name="filiation"/>
         <ref name="msItem"/>
         <ref name="msItemStruct"/>
         <ref name="decoNote"/>
      </choice>
   </define>
   <define name="model.choicePart">
      <choice>
         <ref name="sic"/>
         <ref name="corr"/>
         <ref name="reg"/>
         <ref name="orig"/>
         <ref name="unclear"/>
         <ref name="abbr"/>
         <ref name="expan"/>
         <ref name="ex"/>
         <ref name="am"/>
         <ref name="supplied"/>
         <ref name="seg"/>
      </choice>
   </define>
   <define name="model.imprintPart">
      <choice>
         <ref name="publisher"/>
         <ref name="biblScope"/>
         <ref name="pubPlace"/>
         <ref name="distributor"/>
      </choice>
   </define>
   <define name="model.catDescPart">
      <choice>
         <ref name="textDesc"/>
      </choice>
   </define>
   <define name="model.settingPart">
      <choice>
         <ref name="placeName"/>
         <ref name="locale"/>
         <ref name="activity"/>
      </choice>
   </define>
   <define name="model.castItemPart">
      <choice>
         <ref name="role"/>
         <ref name="roleDesc"/>
         <ref name="actor"/>
      </choice>
   </define>
   <define name="model.addressLike">
      <choice>
         <ref name="email"/>
         <ref name="address"/>
         <ref name="affiliation"/>
      </choice>
   </define>
   <define name="model.addressLike_alternation">
      <choice>
         <ref name="email"/>
         <ref name="address"/>
         <ref name="affiliation"/>
      </choice>
   </define>
   <define name="model.addressLike_sequence">
      <ref name="email"/>
      <ref name="address"/>
      <ref name="affiliation"/>
   </define>
   <define name="model.addressLike_sequenceOptional">
      <optional>
         <ref name="email"/>
      </optional>
      <optional>
         <ref name="address"/>
      </optional>
      <optional>
         <ref name="affiliation"/>
      </optional>
   </define>
   <define name="model.addressLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="email"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="address"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="affiliation"/>
      </zeroOrMore>
   </define>
   <define name="model.addressLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="email"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="address"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="affiliation"/>
      </oneOrMore>
   </define>
   <define name="model.nameLike">
      <choice>
         <ref name="model.nameLike.agent"/>
         <ref name="model.offsetLike"/>
         <ref name="model.placeStateLike"/>
         <ref name="rs"/>
         <ref name="idno"/>
         <ref name="lang"/>
         <ref name="model.persNamePart"/>
         <ref name="objectName"/>
      </choice>
   </define>
   <define name="model.nameLike_alternation">
      <choice>
         <ref name="model.nameLike.agent_alternation"/>
         <ref name="model.offsetLike_alternation"/>
         <ref name="model.placeStateLike_alternation"/>
         <ref name="rs"/>
         <ref name="idno"/>
         <ref name="lang"/>
         <ref name="model.persNamePart_alternation"/>
         <ref name="objectName"/>
      </choice>
   </define>
   <define name="model.nameLike_sequence">
      <ref name="model.nameLike.agent_sequence"/>
      <ref name="model.offsetLike_sequence"/>
      <ref name="model.placeStateLike_sequence"/>
      <ref name="rs"/>
      <ref name="idno"/>
      <ref name="lang"/>
      <ref name="model.persNamePart_sequence"/>
      <ref name="objectName"/>
   </define>
   <define name="model.nameLike_sequenceOptional">
      <optional>
         <ref name="model.nameLike.agent_sequenceOptional"/>
      </optional>
      <optional>
         <ref name="model.offsetLike_sequenceOptional"/>
      </optional>
      <optional>
         <ref name="model.placeStateLike_sequenceOptional"/>
      </optional>
      <optional>
         <ref name="rs"/>
      </optional>
      <optional>
         <ref name="idno"/>
      </optional>
      <optional>
         <ref name="lang"/>
      </optional>
      <optional>
         <ref name="model.persNamePart_sequenceOptional"/>
      </optional>
      <optional>
         <ref name="objectName"/>
      </optional>
   </define>
   <define name="model.nameLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="model.nameLike.agent_sequenceOptionalRepeatable"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="model.offsetLike_sequenceOptionalRepeatable"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="model.placeStateLike_sequenceOptionalRepeatable"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="rs"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="idno"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="lang"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="model.persNamePart_sequenceOptionalRepeatable"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="objectName"/>
      </zeroOrMore>
   </define>
   <define name="model.nameLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="model.nameLike.agent_sequenceRepeatable"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="model.offsetLike_sequenceRepeatable"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="model.placeStateLike_sequenceRepeatable"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="rs"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="idno"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="lang"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="model.persNamePart_sequenceRepeatable"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="objectName"/>
      </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="model.global.spoken"/>
         <ref name="metamark"/>
         <ref name="notatedMusic"/>
         <ref name="figure"/>
      </choice>
   </define>
   <define name="model.featureVal">
      <choice>
         <ref name="model.featureVal.complex"/>
         <ref name="model.featureVal.single"/>
      </choice>
   </define>
   <define name="model.biblPart">
      <choice>
         <ref name="model.respLike"/>
         <ref name="model.imprintPart"/>
         <ref name="series"/>
         <ref name="citedRange"/>
         <ref name="bibl"/>
         <ref name="relatedItem"/>
         <ref name="textLang"/>
         <ref name="edition"/>
         <ref name="extent"/>
         <ref name="availability"/>
         <ref name="msIdentifier"/>
         <ref name="explicit"/>
         <ref name="incipit"/>
         <ref name="decoNote"/>
         <ref name="listRelation"/>
         <ref name="objectIdentifier"/>
      </choice>
   </define>
   <define name="model.frontPart">
      <choice>
         <ref name="model.frontPart.drama"/>
         <ref name="listBibl"/>
         <ref name="divGen"/>
         <ref name="titlePage"/>
         <ref name="schemaSpec"/>
      </choice>
   </define>
   <define name="model.addrPart">
      <choice>
         <ref name="model.nameLike"/>
         <ref name="addrLine"/>
         <ref name="street"/>
         <ref name="postCode"/>
         <ref name="postBox"/>
      </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"/>
         <ref name="castList"/>
      </choice>
   </define>
   <define name="model.common">
      <choice>
         <ref name="model.divPart"/>
         <ref name="model.inter"/>
         <ref name="q"/>
         <ref name="model.entryLike"/>
      </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"/>
         <ref name="ruby"/>
         <ref name="model.ptrLike.form"/>
      </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">
      <choice>
         <ref name="divGen"/>
      </choice>
   </define>
   <define name="model.div1Like">
      <choice>
         <ref name="div1"/>
      </choice>
   </define>
   <define name="model.div2Like">
      <choice>
         <ref name="div2"/>
      </choice>
   </define>
   <define name="model.div3Like">
      <choice>
         <ref name="div3"/>
      </choice>
   </define>
   <define name="model.div4Like">
      <choice>
         <ref name="div4"/>
      </choice>
   </define>
   <define name="model.div5Like">
      <choice>
         <ref name="div5"/>
      </choice>
   </define>
   <define name="model.div6Like">
      <choice>
         <ref name="div6"/>
      </choice>
   </define>
   <define name="model.div7Like">
      <choice>
         <ref name="div7"/>
      </choice>
   </define>
   <define name="model.annotationLike">
      <choice>
         <ref name="note"/>
         <ref name="annotationBlock"/>
         <ref name="annotation"/>
      </choice>
   </define>
   <define name="model.annotationPart.body">
      <choice>
         <ref name="ptr"/>
         <ref name="ref"/>
         <ref name="note"/>
      </choice>
   </define>
   <define name="model.applicationLike">
      <choice>
         <ref name="application"/>
      </choice>
   </define>
   <define name="model.teiHeaderPart">
      <choice>
         <ref name="encodingDesc"/>
         <ref name="profileDesc"/>
         <ref name="xenoData"/>
      </choice>
   </define>
   <define name="model.sourceDescPart">
      <choice>
         <ref name="scriptStmt"/>
         <ref name="recordingStmt"/>
      </choice>
   </define>
   <define name="model.encodingDescPart">
      <choice>
         <ref name="schemaRef"/>
         <ref name="projectDesc"/>
         <ref name="samplingDecl"/>
         <ref name="editorialDecl"/>
         <ref name="tagsDecl"/>
         <ref name="styleDefDecl"/>
         <ref name="refsDecl"/>
         <ref name="listPrefixDef"/>
         <ref name="classDecl"/>
         <ref name="geoDecl"/>
         <ref name="unitDecl"/>
         <ref name="appInfo"/>
         <ref name="charDecl"/>
         <ref name="metDecl"/>
         <ref name="transcriptionDesc"/>
         <ref name="variantEncoding"/>
         <ref name="fsdDecl"/>
         <ref name="schemaSpec"/>
      </choice>
   </define>
   <define name="model.editorialDeclPart">
      <choice>
         <ref name="correction"/>
         <ref name="normalization"/>
         <ref name="quotation"/>
         <ref name="hyphenation"/>
         <ref name="segmentation"/>
         <ref name="stdVals"/>
         <ref name="interpretation"/>
         <ref name="punctuation"/>
      </choice>
   </define>
   <define name="model.profileDescPart">
      <choice>
         <ref name="abstract"/>
         <ref name="creation"/>
         <ref name="langUsage"/>
         <ref name="textClass"/>
         <ref name="calendarDesc"/>
         <ref name="correspDesc"/>
         <ref name="handNotes"/>
         <ref name="listTranspose"/>
         <ref name="textDesc"/>
         <ref name="particDesc"/>
         <ref name="settingDesc"/>
      </choice>
   </define>
   <define name="model.standOffPart">
      <choice>
         <ref name="model.global.meta"/>
         <ref name="model.biblLike"/>
         <ref name="model.listLike"/>
         <ref name="model.annotationLike"/>
         <ref name="listChange"/>
         <ref name="castList"/>
         <ref name="u"/>
         <ref name="model.entryLike"/>
         <ref name="zone"/>
         <ref name="seg"/>
         <ref name="listAnnotation"/>
         <ref name="graph"/>
         <ref name="tree"/>
         <ref name="eTree"/>
         <ref name="forest"/>
         <ref name="listForest"/>
      </choice>
   </define>
   <define name="att.formula.attributes">
      <ref name="att.formula.attribute.formula"/>
   </define>
   <define name="att.formula.attribute.formula">
      <optional>
         <attribute name="formula">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A <code xmlns="http://www.w3.org/1999/xhtml">@formula</code> is provided to describe a mathematical calculation such as a conversion between measurement systems.</a:documentation>
            <text/>
         </attribute>
      </optional>
   </define>
   <define name="att.locatable.attributes">
      <ref name="att.locatable.attribute.where"/>
   </define>
   <define name="att.locatable.attribute.where">
      <optional>
         <attribute name="where">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates one or more locations by pointing to a <code xmlns="http://www.w3.org/1999/xhtml">&lt;place&gt;</code> element or other canonical description.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="model.correspActionPart">
      <choice>
         <ref name="model.dateLike"/>
         <ref name="model.addressLike"/>
         <ref name="model.nameLike"/>
         <ref name="note"/>
         <ref name="noteGrp"/>
      </choice>
   </define>
   <define name="model.correspContextPart">
      <choice>
         <ref name="model.ptrLike"/>
         <ref name="model.pLike"/>
         <ref name="note"/>
         <ref name="noteGrp"/>
      </choice>
   </define>
   <define name="model.correspDescPart">
      <choice>
         <ref name="note"/>
         <ref name="noteGrp"/>
         <ref name="correspAction"/>
         <ref name="correspContext"/>
      </choice>
   </define>
   <define name="att.partials.attributes">
      <ref name="att.partials.attribute.extent"/>
   </define>
   <define name="att.partials.attribute.extent">
      <optional>
         <attribute name="extent">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates whether the pronunciation or orthography applies to all or part of a word.
Suggested values include: 1] full (full form); 2] pref (prefix); 3] suff (suffix); 4] inf (infix); 5] part (partial)</a:documentation>
            <choice>
               <value>full</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(full form) </a:documentation>
               <value>pref</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(prefix) </a:documentation>
               <value>suff</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(suffix) </a:documentation>
               <value>inf</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(infix) </a:documentation>
               <value>part</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(partial) </a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="model.resource">
      <choice>
         <ref name="text"/>
         <ref name="facsimile"/>
         <ref name="sourceDoc"/>
         <ref name="standOff"/>
         <ref name="fsdDecl"/>
      </choice>
   </define>
   <define name="model.describedResource">
      <choice>
         <ref name="teiCorpus"/>
         <ref name="TEI"/>
      </choice>
   </define>
   <define name="model.objectLike">
      <choice>
         <ref name="object"/>
         <ref name="listObject"/>
      </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="model.placeLike">
      <choice>
         <ref name="place"/>
      </choice>
   </define>
   <define name="att.duration.iso.attributes">
      <ref name="att.duration.iso.attribute.dur-iso"/>
   </define>
   <define name="att.duration.iso.attribute.dur-iso">
      <optional>
         <attribute name="dur-iso">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(duration) indicates the length of this element in time.</a:documentation>
            <data type="token">
               <param name="pattern">[0-9.,DHMPRSTWYZ/:+\-]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.milestoneUnit.attributes">
      <ref name="att.milestoneUnit.attribute.unit"/>
   </define>
   <define name="att.milestoneUnit.attribute.unit">
      <attribute name="unit">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a conventional name for the kind of section changing at this milestone.
Suggested values include: 1] page; 2] column; 3] line; 4] book; 5] poem; 6] canto; 7] speaker; 8] stanza; 9] act; 10] scene; 11] section; 12] absent; 13] unnumbered</a:documentation>
         <choice>
            <value>page</value>
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">physical page breaks (synonymous with the <code xmlns="http://www.w3.org/1999/xhtml">&lt;pb&gt;</code> element).</a:documentation>
            <value>column</value>
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">column breaks.</a:documentation>
            <value>line</value>
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">line breaks (synonymous with the <code xmlns="http://www.w3.org/1999/xhtml">&lt;lb&gt;</code> element).</a:documentation>
            <value>book</value>
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">any units termed book, liber, etc.</a:documentation>
            <value>poem</value>
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">individual poems in a collection.</a:documentation>
            <value>canto</value>
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">cantos or other major sections of a poem.</a:documentation>
            <value>speaker</value>
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">changes of speaker or narrator.</a:documentation>
            <value>stanza</value>
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">stanzas within a poem, book, or canto.</a:documentation>
            <value>act</value>
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">acts within a play.</a:documentation>
            <value>scene</value>
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">scenes within a play or act.</a:documentation>
            <value>section</value>
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">sections of any kind.</a:documentation>
            <value>absent</value>
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">passages not present in the reference edition.</a:documentation>
            <value>unnumbered</value>
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">passages present in the text, but not to be included as part of the reference.</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </choice>
      </attribute>
   </define>
   <define name="p">
      <element name="p">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(paragraph) marks paragraphs in prose. [3.1. Paragraphs 7.2.5. Speech Contents]</a:documentation>
         <ref name="macro.paraContent"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-p-abstractModel-structure-p-in-ab-or-p-constraint-report-6">
            <rule context="tei:p">
               <sch:report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="(ancestor::tei:ab or ancestor::tei:p) and not( ancestor::tei:floatingText |parent::tei:exemplum |parent::tei:item |parent::tei:note |parent::tei:q |parent::tei:quote |parent::tei:remarks |parent::tei:said |parent::tei:sp |parent::tei:stage |parent::tei:cell |parent::tei:figure )">
        Abstract model violation: Paragraphs may not occur inside other paragraphs or ab elements.
      </sch:report>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-p-abstractModel-structure-p-in-l-or-lg-constraint-report-7">
            <rule context="tei:p">
               <sch:report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="(ancestor::tei:l or ancestor::tei:lg) and not( ancestor::tei:floatingText |parent::tei:figure |parent::tei:note )">
        Abstract model violation: Lines may not contain higher-level structural elements such as div, p, or ab, unless p is a child of figure or note, or is a descendant of floatingText.
      </sch:report>
            </rule>
         </pattern>
         <ref name="att.global.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"/>
         <empty/>
      </element>
   </define>
   <define name="emph">
      <element name="emph">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(emphasized) marks words or phrases which are stressed or emphasized for linguistic or rhetorical effect. [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"/>
         <empty/>
      </element>
   </define>
   <define name="hi">
      <element name="hi">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(highlighted) marks a word or phrase as graphically distinct from the surrounding text, for reasons concerning which no claim is made. [3.3.2.2. Emphatic Words and Phrases 3.3.2. Emphasis, Foreign Words, and Unusual Language]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.written.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="distinct">
      <element name="distinct">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies any word or phrase which is regarded as linguistically distinct, for example as archaic, technical, dialectal, non-preferred, etc., or as forming part of a sublanguage. [3.3.2.3. Other Linguistically Distinct Material]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the sublanguage or register to which the word or phrase is being assigned</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="time">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies how the phrase is distinct diachronically</a:documentation>
               <data type="string"/>
            </attribute>
         </optional>
         <optional>
            <attribute name="space">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies how the phrase is distinct diatopically</a:documentation>
               <data type="string"/>
            </attribute>
         </optional>
         <optional>
            <attribute name="social">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies how the phrase is distinct diastratically</a:documentation>
               <data type="string"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="said">
      <element name="said">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(speech or thought) indicates passages thought or spoken aloud, whether explicitly indicated in the source or not, whether directly or indirectly reported, whether by real people or fictional characters. [3.3.3. Quotation]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.ascribed.directed.attributes"/>
         <optional>
            <attribute name="aloud">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">may be used to indicate whether the quoted matter is regarded as having been vocalized or signed.</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>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="direct"
                       a:defaultValue="true">
               <a:documentation>may be used to indicate whether the quoted matter is regarded as direct or indirect speech.</a:documentation>
               <choice>
                  <data type="boolean"/>
                  <choice>
                     <value>unknown</value>
                     <a:documentation/>
                     <value>inapplicable</value>
                     <a:documentation/>
                  </choice>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="quote">
      <element name="quote">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(quotation) contains a phrase or passage attributed by the narrator or author to some agency external to the text. [3.3.3. Quotation 4.3.1. Grouped Texts]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.msExcerpt.attributes"/>
         <ref name="att.notated.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="q">
      <element name="q">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(quoted) contains material which is distinguished from the surrounding text using quotation marks or a similar method, for any one of a variety of reasons including, but not limited to: direct speech or thought, technical terms or jargon, authorial distance, quotations from elsewhere, and passages that are mentioned but not used. [3.3.3. Quotation]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.ascribed.directed.attributes"/>
         <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) </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="cit">
      <element name="cit">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(cited quotation) contains a quotation from some other document, together with a bibliographic reference to its source. In a dictionary it may contain an example text with at least one occurrence of the word form, used in the sense being described, or a translation of the headword, or an example. [3.3.3. Quotation 4.3.1. Grouped Texts 9.3.5.1. Examples]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="model.biblLike"/>
               <ref name="model.egLike"/>
               <ref name="model.entryPart"/>
               <ref name="model.global"/>
               <ref name="model.graphicLike"/>
               <ref name="model.ptrLike"/>
               <ref name="model.attributable"/>
               <ref name="pc"/>
               <ref name="q"/>
            </choice>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="mentioned">
      <element name="mentioned">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">marks words or phrases mentioned, not used. [3.3.3. Quotation]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="soCalled">
      <element name="soCalled">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(so called) contains a word or phrase for which the author or narrator indicates a disclaiming of responsibility, for example by the use of scare quotes or italics. [3.3.3. Quotation]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <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.  [22.4.1. Description of Components]</a:documentation>
         <ref name="macro.limitedContent"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-desc-deprecationInfo-only-in-deprecated-constraint-rule-11">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      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.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 22.4.1. Description of Components]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.translatable.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.cReferencing.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="term">
      <element name="term">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(term) contains a single-word, multi-word, or symbolic designation which is regarded as a technical term. [3.4.1. Terms and Glosses]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.canonical.attributes"/>
         <ref name="att.sortable.attributes"/>
         <ref name="att.cReferencing.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="ruby">
      <element name="ruby">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(ruby container) contains a passage of base text along with its associated ruby gloss(es). [3.4.2. Ruby Annotations]</a:documentation>
         <group>
            <ref name="rb"/>
            <oneOrMore>
               <ref name="rt"/>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="rb">
      <element name="rb">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(ruby base) contains the base text annotated by a ruby gloss. [3.4.2. Ruby Annotations]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="rt">
      <element name="rt">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(ruby text) contains a ruby text, an annotation closely associated with a passage of the main text. [3.4.2. Ruby Annotations]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.transcriptional.attributes"/>
         <optional>
            <attribute name="target">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a pointer to the base being glossed by this ruby text.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional> 
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-rt-target-rt-target-not-span-constraint-report-8">
            <rule context="tei:rt/@target">
               <sch:report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="../@from | ../@to">When target= is
            present, neither from= nor to= should be.</sch:report>
            </rule>
         </pattern>
         <optional>
            <attribute name="from">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to the starting point of the span of text being glossed by this ruby text.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional> 
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-rt-from-rt-from-constraint-assert-7">
            <rule context="tei:rt/@from">
               <sch:assert xmlns:rng="http://relaxng.org/ns/structure/1.0"
                           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="../@to">When from= is present, the to=
            attribute of <sch:name/> is required.</sch:assert>
            </rule>
         </pattern>
         <optional>
            <attribute name="to">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to the ending point of the span of text being glossed.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional> 
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-rt-to-rt-to-constraint-assert-8">
            <rule context="tei:rt/@to">
               <sch:assert xmlns:rng="http://relaxng.org/ns/structure/1.0"
                           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="../@from">When to= is present, the from=
            attribute of <sch:name/> is required.</sch:assert>
            </rule>
         </pattern>
         <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"/>
         <empty/>
      </element>
   </define>
   <define name="corr">
      <element name="corr">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(correction) contains the correct form of a passage apparently erroneous in the copy text. [3.5.1. Apparent Errors]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="choice">
      <element name="choice">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(choice) groups a number of alternative encodings for the same point in a text. [3.5. Simple Editorial Changes]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="model.choicePart"/>
               <ref name="choice"/>
            </choice>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="reg">
      <element name="reg">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(regularization) contains a reading which has been regularized or normalized in some sense. [3.5.2. Regularization and
Normalization 12. Critical Apparatus]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="orig">
      <element name="orig">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(original form) contains a reading which is marked as following the original, rather than being normalized or corrected. [3.5.2. Regularization and
Normalization 12. Critical Apparatus]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="gap">
      <element name="gap">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(gap) indicates a point where material has been omitted in a transcription, whether for editorial reasons described in the TEI header, as part of sampling practice, or because the material is illegible, invisible, or inaudible. [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.timed.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <optional>
            <attribute name="reason">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reason) gives the reason for omission
Suggested values include: 1] cancelled (cancelled); 2] deleted (deleted); 3] editorial (editorial); 4] illegible (illegible); 5] inaudible (inaudible); 6] irrelevant (irrelevant); 7] sampling (sampling)</a:documentation>
               <list>
                  <oneOrMore>
                     <choice>
                        <value>cancelled</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(cancelled) </a:documentation>
                        <value>deleted</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(deleted) </a:documentation>
                        <value>editorial</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(editorial) for features omitted from transcription due to editorial policy</a:documentation>
                        <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>irrelevant</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(irrelevant) </a:documentation>
                        <value>sampling</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(sampling) </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">(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="ellipsis">
      <element name="ellipsis">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(deliberately marked omission) indicates a purposeful marking in the source document signalling that content has been omitted, and may also supply or describe the omitted content. [3.5.3. Additions, Deletions, and Omissions]</a:documentation>
         <group>
            <ref name="metamark"/>
            <optional>
               <ref name="model.descLike"/>
            </optional>
            <optional>
               <ref name="supplied"/>
            </optional>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <ref name="att.timed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="add">
      <element name="add">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(addition) contains letters, words, or phrases inserted in the source 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.transcriptional.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <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.transcriptional.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.dimensions.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. [11.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.editLike.attributes"/>
         <ref name="att.dimensions.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.personal.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="rs">
      <element name="rs">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(referencing string) contains a general purpose name or referring string. [13.2.1. Personal Names 3.6.1. Referring Strings]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="email">
      <element name="email">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(electronic mail address) contains an email address identifying a location to which email messages can be delivered. [3.6.2. Addresses]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="address">
      <element name="address">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(address) contains a postal address, for example of a publisher, an organization, or an individual. [3.6.2. Addresses 2.2.4. Publication, Distribution, Licensing, etc. 3.12.2.4. Imprint, Size of a Document, and Reprint Information]</a:documentation>
         <group>
      
            <zeroOrMore>
               <ref name="model.global"/>
            </zeroOrMore>
      
            <oneOrMore>
               <group>
        
                  <ref name="model.addrPart"/>
        
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <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="street">
      <element name="street">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a full street address including any name or number identifying a building as well as the name of the street or route on which it is located. [3.6.2. Addresses]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="postCode">
      <element name="postCode">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(postal code) contains a numerical or alphanumeric code used as part of a postal address to simplify sorting or delivery of mail. [3.6.2. Addresses]</a:documentation>
         <text/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="postBox">
      <element name="postBox">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(postal box or post office box) contains a number or other identifier for some postal delivery point other than a street address. [3.6.2. Addresses]</a:documentation>
         <text/>
         <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.typed.attribute.subtype"/>
         <ref name="att.ranging.attributes"/>
         <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.typed.attribute.subtype"/>
         <ref name="att.measurement.attributes"/>
         <ref name="att.ranging.attributes"/>
         <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="measureGrp">
      <element name="measureGrp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(measure group) contains a group of dimensional specifications which relate to the same object, for example the height and width of a manuscript page. [10.3.4. Dimensions]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.measureLike"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.measurement.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="unit">
      <element name="unit">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a symbol, a word or a phrase referring to a unit of measurement in any kind of formal or informal system. [3.6.3. Numbers and
Measures]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.measurement.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="date">
      <element name="date">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(date) contains a date in any format. [3.6.4. Dates and Times 2.2.4. Publication, Distribution, Licensing, etc. 2.6. The Revision Description 3.12.2.4. Imprint, Size of a Document, and Reprint Information 15.2.3. The Setting Description 13.4. Dates]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.phrase"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.canonical.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.duration.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="time">
      <element name="time">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(time) contains a phrase defining a time of day in any format. [3.6.4. Dates and Times]</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.datable.attributes"/>
         <ref name="att.canonical.attributes"/>
         <ref name="att.duration.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="abbr">
      <element name="abbr">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(abbreviation) contains an abbreviation of any sort. [3.6.5. Abbreviations and Their Expansions]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <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">(type) allows the encoder to classify the abbreviation according to some convenient typology.
Sample values include: 1] suspension (suspension); 2] contraction (contraction); 3] brevigraph; 4] superscription (superscription); 5] acronym (acronym); 6] title (title); 7] organization (organization); 8] geographic (geographic)</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="expan">
      <element name="expan">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(expansion) contains the expansion of an abbreviation. [3.6.5. Abbreviations and Their Expansions]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="ptr">
      <element name="ptr">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(pointer) defines a pointer to another location. [3.7. Simple Links and Cross-References 16.1. Links]</a:documentation>
         <empty/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-ptr-ptrAtts-constraint-report-9">
            <rule context="tei:ptr">
               <report xmlns:rng="http://relaxng.org/ns/structure/1.0" test="@target and @cRef">Only one of the
attributes @target and @cRef may be supplied on <name/>.</report>
            </rule>
         </pattern>
         <ref name="att.cReferencing.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.global.attributes"/>
         <ref name="att.internetMedia.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.typed.attributes"/>
         <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 16.1. Links]</a:documentation>
         <ref name="macro.paraContent"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-ref-refAtts-constraint-report-10">
            <rule context="tei:ref">
               <report xmlns:rng="http://relaxng.org/ns/structure/1.0" test="@target and @cRef">Only one of the
	attributes @target' and @cRef' may be supplied on <name/>
               </report>
            </rule>
         </pattern>
         <ref name="att.cReferencing.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.global.attributes"/>
         <ref name="att.internetMedia.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.typed.attributes"/>
         <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>
                  <group>
                     <ref name="item"/>
          
                     <zeroOrMore>
                        <ref name="model.global"/>
                     </zeroOrMore>
          
                  </group>
               </oneOrMore>
               <group>
          
                  <optional>
                     <ref name="headLabel"/>
                  </optional>
          
          
                  <optional>
                     <ref name="headItem"/>
                  </optional>
          
                  <oneOrMore>
                     <group>
                        <ref name="label"/>
            
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
            
                        <ref name="item"/>
            
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
            
                     </group>
                  </oneOrMore>
               </group>
            </choice>
      
            <zeroOrMore>
               <group>
          
                  <ref name="model.divBottom"/>
          
          
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
          
               </group>
            </zeroOrMore>
      
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-list-gloss-list-must-have-labels-constraint-rule-12">
            <sch:rule xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:list[@type='gloss']">
	              <sch:assert test="tei:label">The content of a "gloss" list should include a sequence of one or more pairs of a label element followed by an item element</sch:assert>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.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">&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="label">
      <element name="label">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(label) contains any label or heading used to identify part of a text, typically but not exclusively in a list or glossary. [3.8. Lists]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.written.attributes"/>
         <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.typed.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.written.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="headLabel">
      <element name="headLabel">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(heading for list labels) contains the heading for the label or term column in a glossary list or similar structured list. [3.8. Lists]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="headItem">
      <element name="headItem">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(heading for list items) contains the heading for the item or gloss column in a glossary list or similar structured list. [3.8. Lists]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.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 9.3.5.4. Notes within Entries]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.written.attributes"/>
         <ref name="att.anchoring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="noteGrp">
      <element name="noteGrp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(note group) contains a group of notes [3.9.1.1. Encoding Grouped Notes]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="desc"/>
            </zeroOrMore>
            <oneOrMore>
               <choice>
                  <ref name="note"/>
                  <ref name="noteGrp"/>
               </choice>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.written.attributes"/>
         <ref name="att.anchoring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="index">
      <element name="index">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(index entry) marks a location to be indexed for whatever purpose. [3.9.2. Index Entries]</a:documentation>
         <zeroOrMore>
            <group>
               <ref name="term"/>
        
               <optional>
                  <ref name="index"/>
               </optional>
        
            </group>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.spanning.attributes"/>
         <optional>
            <attribute name="indexName">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a single word which follows the rules defining a legal XML name (see ), supplying a name to specify which index (of several) the index entry belongs to.</a:documentation>
               <data type="Name"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="media">
      <element name="media">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the location of any form of external media such as an audio or video clip etc. [3.10. Graphics and Other Non-textual Components]</a:documentation>
         <zeroOrMore>
            <ref name="model.descLike"/>
         </zeroOrMore>
         <ref name="att.typed.attributes"/>
         <ref name="att.global.attributes"/>
         <ref name="att.media.attribute.width"/>
         <ref name="att.media.attribute.height"/>
         <ref name="att.media.attribute.scale"/>
         <ref name="att.resourced.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.timed.attributes"/>
         <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>
         <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 11.1. Digital Facsimiles]</a:documentation>
         <zeroOrMore>
            <ref name="model.descLike"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.media.attributes"/>
         <ref name="att.resourced.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="binaryObject">
      <element name="binaryObject">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides encoded binary data representing an inline graphic, audio, video or other object. [3.10. Graphics and Other Non-textual Components]</a:documentation>
         <text/>
         <ref name="att.global.attributes"/>
         <ref name="att.media.attributes"/>
         <ref name="att.timed.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="encoding">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The encoding used to encode the binary data. If not specified, this is assumed to be <a xmlns="http://www.w3.org/1999/xhtml"
                     href="http://en.wikipedia.org/wiki/Base64">Base64</a>.</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="milestone">
      <element name="milestone">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(milestone) marks a boundary point separating any kind of section of a text, typically but not necessarily indicating a point at which some part of a standard reference system changes, where the change is not represented by a structural element. [3.11.3. Milestone
Elements]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.milestoneUnit.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.edition.attributes"/>
         <ref name="att.spanning.attributes"/>
         <ref name="att.breaking.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="gb">
      <element name="gb">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(gathering beginning) marks the beginning of a new gathering or quire in a transcribed codex. [3.11.3. Milestone
Elements]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.spanning.attributes"/>
         <ref name="att.breaking.attributes"/>
         <ref name="att.edition.attributes"/>
         <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.typed.attributes"/>
         <ref name="att.edition.attributes"/>
         <ref name="att.spanning.attributes"/>
         <ref name="att.breaking.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="lb">
      <element name="lb">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(line beginning) marks the beginning of a new (typographic) line in some edition or version of a text. [3.11.3. Milestone
Elements 7.2.5. Speech Contents]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.edition.attributes"/>
         <ref name="att.spanning.attributes"/>
         <ref name="att.breaking.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.typed.attributes"/>
         <ref name="att.edition.attributes"/>
         <ref name="att.spanning.attributes"/>
         <ref name="att.breaking.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="analytic">
      <element name="analytic">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(analytic level) contains bibliographic elements describing an item (e.g. an article or poem) published within a monograph or journal and not as an independent publication. [3.12.2.1. Analytic, Monographic, and Series Levels]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="author"/>
               <ref name="editor"/>
               <ref name="respStmt"/>
               <ref name="title"/>
               <ref name="model.ptrLike"/>
               <ref name="date"/>
               <ref name="textLang"/>
               <ref name="idno"/>
               <ref name="availability"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="monogr">
      <element name="monogr">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(monographic level) contains bibliographic elements describing an item (e.g. a book or journal) published as an independent item (i.e. as a separate physical object). [3.12.2.1. Analytic, Monographic, and Series Levels]</a:documentation>
         <group>
      
            <optional>
               <choice>
                  <group>
                     <choice>
                        <ref name="author"/>
                        <ref name="editor"/>
                        <ref name="meeting"/>
                        <ref name="respStmt"/>
                     </choice>
            
                     <zeroOrMore>
                        <choice>
                           <ref name="author"/>
                           <ref name="editor"/>
                           <ref name="meeting"/>
                           <ref name="respStmt"/>
                        </choice>
                     </zeroOrMore>
            
            
                     <oneOrMore>
                        <ref name="title"/>
                     </oneOrMore>
            
            
                     <zeroOrMore>
                        <choice>
                           <ref name="model.ptrLike"/>
                           <ref name="idno"/>
                           <ref name="textLang"/>
                           <ref name="editor"/>
                           <ref name="respStmt"/>
                        </choice>
                     </zeroOrMore>
            
                  </group>
                  <group>
            
                     <oneOrMore>
                        <choice>
                           <ref name="title"/>
                           <ref name="model.ptrLike"/>
                           <ref name="idno"/>
                        </choice>
                     </oneOrMore>
            
            
                     <zeroOrMore>
                        <choice>
                           <ref name="textLang"/>
                           <ref name="author"/>
                           <ref name="editor"/>
                           <ref name="meeting"/>
                           <ref name="respStmt"/>
                        </choice>
                     </zeroOrMore>
            
                  </group>
                  <group>
            
                     <ref name="authority"/>
                     <ref name="idno"/>
                  </group>
               </choice>
            </optional>
      
      
            <zeroOrMore>
               <ref name="availability"/>
            </zeroOrMore>
      
      
            <zeroOrMore>
               <ref name="model.noteLike"/>
            </zeroOrMore>
      
            <zeroOrMore>
               <group>
                  <ref name="edition"/>
        
                  <zeroOrMore>
                     <choice>
                        <ref name="idno"/>
                        <ref name="model.ptrLike"/>
                        <ref name="editor"/>
                        <ref name="sponsor"/>
                        <ref name="funder"/>
                        <ref name="respStmt"/>
                     </choice>
                  </zeroOrMore>
        
               </group>
            </zeroOrMore>
            <ref name="imprint"/>
      
            <zeroOrMore>
               <choice>
                  <ref name="imprint"/>
                  <ref name="extent"/>
                  <ref name="biblScope"/>
               </choice>
            </zeroOrMore>
      
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="series">
      <element name="series">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(series information) contains information about the series in which a book or other bibliographic item has appeared. [3.12.2.1. Analytic, Monographic, and Series Levels]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="title"/>
               <ref name="model.ptrLike"/>
               <ref name="editor"/>
               <ref name="respStmt"/>
               <ref name="biblScope"/>
               <ref name="idno"/>
               <ref name="textLang"/>
               <ref name="model.global"/>
               <ref name="availability"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="author">
      <element name="author">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(author) in a bibliographic reference, contains the name(s) of an author, personal or corporate, of a work; for example in the same form as that provided by a recognized bibliographic name authority. [3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.datable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="editor">
      <element name="editor">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a secondary statement of responsibility for a bibliographic item, for example the name of an individual, institution or organization, (or of several such) acting as editor, compiler, translator, etc. [3.12.2.2. Titles, Authors, and Editors]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.datable.attributes"/>
         <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.typed.attribute.subtype"/>
         <ref name="att.canonical.attributes"/>
         <ref name="att.datable.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies the title according to some convenient typology.
Sample values include: 1] main; 2] sub (subordinate); 3] alt (alternate); 4] short; 5] desc (descriptive)</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="level">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the bibliographic level for a title, that is, whether it identifies an article, book, journal, series, or unpublished material.</a:documentation>
               <choice>
                  <value>a</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(analytic) the title applies to an analytic item, such as an article, poem, or other work published as part of a larger item.</a:documentation>
                  <value>m</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(monographic) the title applies to a monograph such as a book or other item considered to be a distinct publication, including single volumes of multi-volume works</a:documentation>
                  <value>j</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(journal) the title applies to any serial or periodical publication such as a journal, magazine, or newspaper</a:documentation>
                  <value>s</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(series) the title applies to a series of otherwise distinct publications such as a collection</a:documentation>
                  <value>u</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(unpublished) the title applies to any unpublished material (including theses and dissertations unless published by a commercial press)</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="meeting">
      <element name="meeting">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains the formalized descriptive title for a meeting or conference, for use in a bibliographic description for an item derived from such a meeting, or as a heading or preamble to publications emanating from it. [3.12.2.2. Titles, Authors, and Editors]</a:documentation>
         <ref name="macro.limitedContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.canonical.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="imprint">
      <element name="imprint">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">groups information relating to the publication or distribution of a bibliographic item. [3.12.2.4. Imprint, Size of a Document, and Reprint Information]</a:documentation>
         <group>
      
            <zeroOrMore>
               <choice>
                  <ref name="classCode"/>
                  <ref name="catRef"/>
               </choice>
            </zeroOrMore>
      
            <oneOrMore>
               <group>
                  <choice>
          
            
                     <ref name="model.imprintPart"/>
          
          
            
                     <ref name="model.dateLike"/>
          
                  </choice>
        
                  <zeroOrMore>
                     <ref name="respStmt"/>
                  </zeroOrMore>
        
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="publisher">
      <element name="publisher">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(publisher) provides the name of the organization responsible for the publication or distribution of a bibliographic item. [3.12.2.4. Imprint, Size of a Document, and Reprint Information 2.2.4. Publication, Distribution, Licensing, etc.]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.canonical.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="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.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="citedRange">
      <element name="citedRange">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(cited range) defines the range of cited content, often represented by pages or other units [3.12.2.5. Scopes and Ranges in Bibliographic Citations]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.citing.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="pubPlace">
      <element name="pubPlace">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(publication place) contains the name of the place where a bibliographic item was published. [3.12.2.4. Imprint, Size of a Document, and Reprint Information]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.naming.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="bibl">
      <element name="bibl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(bibliographic citation) contains a loosely-structured bibliographic citation of which the sub-components may or may not be explicitly tagged. [3.12.1. Methods of Encoding Bibliographic References and Lists of References 2.2.7. The Source Description 15.3.2. Declarable Elements]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.highlighted"/>
               <ref name="model.pPart.data"/>
               <ref name="model.pPart.edit"/>
               <ref name="model.segLike"/>
               <ref name="model.ptrLike"/>
               <ref name="model.biblPart"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.sortable.attributes"/>
         <ref name="att.docStatus.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="biblStruct">
      <element name="biblStruct">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(structured bibliographic citation) contains a structured bibliographic citation, in which only bibliographic sub-elements appear and in a specified order. [3.12.1. Methods of Encoding Bibliographic References and Lists of References 2.2.7. The Source Description 15.3.2. Declarable Elements]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="analytic"/>
            </zeroOrMore>      
            <oneOrMore>
               <group>
                  <ref name="monogr"/>
                  <zeroOrMore>
                     <ref name="series"/>
                  </zeroOrMore>
               </group>
            </oneOrMore>
            <zeroOrMore>
               <choice>
                  <ref name="model.noteLike"/>
                  <ref name="model.ptrLike"/>
                  <ref name="relatedItem"/>
                  <ref name="citedRange"/>
               </choice>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.sortable.attributes"/>
         <ref name="att.docStatus.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="listBibl">
      <element name="listBibl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(citation list) contains a list of bibliographic citations of any kind. [3.12.1. Methods of Encoding Bibliographic References and Lists of References 2.2.7. The Source Description 15.3.2. Declarable Elements]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="desc"/>
            </zeroOrMore>
            <zeroOrMore>
               <choice>
                  <ref name="model.milestoneLike"/>
                  <ref name="relation"/>
                  <ref name="listRelation"/>
               </choice>
            </zeroOrMore>
            <oneOrMore>
               <group>
                  <oneOrMore>
                     <ref name="model.biblLike"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <choice>
                        <ref name="model.milestoneLike"/>
                        <ref name="relation"/>
                        <ref name="listRelation"/>
                     </choice>
                  </zeroOrMore>
               </group>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.sortable.attributes"/>
         <ref name="att.declarable.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="relatedItem">
      <element name="relatedItem">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains or references some other bibliographic item which is related to the present one in some specified manner, for example as a constituent or alternative version of it. [3.12.2.7. Related Items]</a:documentation>
         <optional>
            <choice>
               <ref name="model.biblLike"/>
               <ref name="model.ptrLike"/>
            </choice>
         </optional>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-relatedItem-targetorcontent1-constraint-report-11">
            <rule context="tei:relatedItem">
               <sch:report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="@target and count( child::* ) &gt; 0">
If the @target attribute on <sch:name/> is used, the
relatedItem element must be empty</sch:report>
               <sch:assert xmlns:rng="http://relaxng.org/ns/structure/1.0"
                           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="@target or child::*">A relatedItem element should have either a 'target' attribute
        or a child element to indicate the related bibliographic item</sch:assert>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="target">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to the related bibliographic element by means of an absolute or relative URI reference</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="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.5. 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"
                  id="tei_all-l-abstractModel-structure-l-in-l-constraint-report-12">
            <rule context="tei:l">
               <sch:report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="ancestor::tei:l[not(.//tei:note//tei:l[. = current()])]">
        Abstract model violation: Lines may not contain lines or lg elements.
      </sch:report>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.metrical.attributes"/>
         <ref name="att.enjamb.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.5. 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="lg"/>
            </choice>
            <zeroOrMore>
               <choice>
                  <ref name="model.lLike"/>
                  <ref name="model.stageLike"/>
                  <ref name="model.labelLike"/>
                  <ref name="model.global"/>
                  <ref name="lg"/>
               </choice>
            </zeroOrMore>
            <zeroOrMore>
               <group>        
                  <ref name="model.divBottom"/>
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
               </group>
            </zeroOrMore>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-lg-atleast1oflggapl-constraint-assert-11">
            <rule context="tei:lg">
               <sch:assert xmlns:rng="http://relaxng.org/ns/structure/1.0"
                           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="count(descendant::tei:lg|descendant::tei:l|descendant::tei:gap) &gt; 0">An lg element
        must contain at least one child l, lg, or gap element.</sch:assert>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-lg-abstractModel-structure-lg-in-l-constraint-report-13">
            <rule context="tei:lg">
               <sch:report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="ancestor::tei:l[not(.//tei:note//tei:lg[. = current()])]">
        Abstract model violation: Lines may not contain line groups.
      </sch:report>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.divLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declaring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="sp">
      <element name="sp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(speech) contains an individual speech in a performance text, or a passage presented as such in a prose or verse text. [3.13.2. Core Tags for Drama 3.13. Passages of Verse or Drama 7.2.2. Speeches and Speakers]</a:documentation>
         <group>
      
            <zeroOrMore>
               <ref name="model.global"/>
            </zeroOrMore>
      
            <optional>
               <group>
                  <ref name="speaker"/>
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </optional>
            <oneOrMore>
               <group>
                  <choice>
                     <ref name="lg"/>
                     <ref name="model.lLike"/>
                     <ref name="model.pLike"/>
                     <ref name="model.listLike"/>
                     <ref name="model.stageLike"/>
                     <ref name="model.attributable"/>
                  </choice>
                  <choice>
                     <zeroOrMore>
                        <ref name="model.global"/>
                     </zeroOrMore>
                     <ref name="q"/>
                  </choice>
               </group>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.ascribed.directed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="speaker">
      <element name="speaker">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a specialized form of heading or label, giving the name of one or more speakers in a dramatic text or fragment. [3.13.2. Core Tags for Drama]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="stage">
      <element name="stage">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(stage direction) contains any kind of stage direction within a dramatic text or fragment. [3.13.2. Core Tags for Drama 3.13. Passages of Verse or Drama 7.2.4. Stage Directions]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.ascribed.directed.attributes"/>
         <ref name="att.global.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.written.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the kind of stage direction.
Suggested values include: 1] setting; 2] entrance; 3] exit; 4] business; 5] novelistic; 6] delivery; 7] modifier; 8] location; 9] mixed</a:documentation>
               <list>
                  <zeroOrMore>
                     <choice>
                        <value>setting</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes a setting.</a:documentation>
                        <value>entrance</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes an entrance.</a:documentation>
                        <value>exit</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes an exit.</a:documentation>
                        <value>business</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes stage business.</a:documentation>
                        <value>novelistic</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">is a narrative, motivating stage direction.</a:documentation>
                        <value>delivery</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes how a character speaks.</a:documentation>
                        <value>modifier</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives some detail about a character.</a:documentation>
                        <value>location</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes a location.</a:documentation>
                        <value>mixed</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">more than one of the above</a:documentation>
                        <data type="token">
                           <param name="pattern">[^\p{C}\p{Z}]+</param>
                        </data>
                     </choice>
                  </zeroOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="teiCorpus">
      <element name="teiCorpus">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(TEI corpus) contains the whole of a TEI encoded corpus, comprising a single corpus header and one or more <code xmlns="http://www.w3.org/1999/xhtml">&lt;TEI&gt;</code> elements, each containing a single text header and a text. [4. Default Text Structure 15.1. Varieties of Composite Text]</a:documentation>
         <group>
            <ref name="teiHeader"/>
            <zeroOrMore>
               <ref name="model.resource"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="model.describedResource"/>
            </oneOrMore>
         </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">(version) 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="divGen">
      <element name="divGen">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(automatically generated text division) indicates the location at which a textual division generated automatically by a text-processing application is to appear. [3.9.2. Index Entries]</a:documentation>
         <zeroOrMore>
            <ref name="model.headLike"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies what type of generated text division (e.g. index, table of contents, etc.) is to appear.
Sample values include: 1] index; 2] toc; 3] figlist; 4] tablist</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="textLang">
      <element name="textLang">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(text language) describes the languages and writing systems identified within the bibliographic work being described, rather than its description. [3.12.2.4. Imprint, Size of a Document, and Reprint Information 10.6.6. Languages and Writing Systems]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="mainLang">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(main language) supplies a code which identifies the chief language used in the bibliographic work.</a:documentation>
               <choice>
                  <data type="language"/>
                  <choice>
                     <value/>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                  </choice>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="otherLangs">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(other languages) one or more codes identifying any other languages used in the bibliographic work.</a:documentation>
               <list>
                  <zeroOrMore>
                     <choice>
                        <data type="language"/>
                        <choice>
                           <value/>
                           <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                        </choice>
                     </choice>
                  </zeroOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="att.citeStructurePart.attributes">
      <ref name="att.citeStructurePart.attribute.use"/>
   </define>
   <define name="att.citeStructurePart.attribute.use">
      <attribute name="use">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(use) supplies an XPath selection pattern using the syntax defined in . The XPath pattern is relative to the context given in <code xmlns="http://www.w3.org/1999/xhtml">@match</code>, which will either be a sibling attribute in the case of `&lt;citeStructure&gt;` or on the parent `&lt;citeStructure&gt;` in the case of `&lt;citeData&gt;`.</a:documentation>
         <text/>
      </attribute>
   </define>
   <define name="att.patternReplacement.attributes">
      <ref name="att.patternReplacement.attribute.matchPattern"/>
      <ref name="att.patternReplacement.attribute.replacementPattern"/>
   </define>
   <define name="att.patternReplacement.attribute.matchPattern">
      <attribute name="matchPattern">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies a regular expression against which the values of other attributes can be matched.</a:documentation>
         <data type="token"/>
      </attribute>
   </define>
   <define name="att.patternReplacement.attribute.replacementPattern">
      <attribute name="replacementPattern">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies a replacement pattern, that is, the skeleton of a relative or absolute URI containing references to groups in the <code xmlns="http://www.w3.org/1999/xhtml">@matchPattern</code> which, once subpattern substitution has been performed, complete the URI.</a:documentation>
         <text/>
      </attribute>
   </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 15.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"/>
        
               <optional>
                  <ref name="editionStmt"/>
               </optional>
        
        
               <optional>
                  <ref name="extent"/>
               </optional>
        
               <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="sponsor">
      <element name="sponsor">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(sponsor) specifies the name of a sponsoring organization or institution. [2.2.1. The Title 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="funder">
      <element name="funder">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(funding body) specifies the name of an individual, institution, or organization responsible for the funding of a project or text. [2.2.1. The Title 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="principal">
      <element name="principal">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(principal researcher) supplies the name of the principal researcher responsible for the creation of an electronic text. [2.2.1. The Title 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="editionStmt">
      <element name="editionStmt">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(edition statement) groups information relating to one edition of a text. [2.2.2. The Edition Statement 2.2. The File Description]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
            <group>
               <ref name="edition"/>
        
               <zeroOrMore>
                  <ref name="model.respLike"/>
               </zeroOrMore>
        
            </group>
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="edition">
      <element name="edition">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(edition) describes the particularities of one edition of a text. [2.2.2. The Edition Statement]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="extent">
      <element name="extent">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(extent) describes the approximate size of a text stored on some carrier medium or of some other object, digital or non-digital, specified in any convenient units. [2.2.3. Type and Extent of File 2.2. The File Description 3.12.2.4. Imprint, Size of a Document, and Reprint Information 10.7.1. Object Description]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <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>
               <group>
	  
	                 <ref name="model.publicationStmtPart.agency"/>
	  
	  
	                 <zeroOrMore>
                     <ref name="model.publicationStmtPart.detail"/>
                  </zeroOrMore>
	  
	              </group>
            </oneOrMore>
      
      
	           <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="distributor">
      <element name="distributor">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(distributor) supplies the name of a person or other agency responsible for the distribution of a text. [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="authority">
      <element name="authority">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(release authority) supplies the name of a person or other agency responsible for making a work available, other than a publisher or distributor. [2.2.4. Publication, Distribution, Licensing, etc.]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <ref name="att.global.attributes"/>
         <ref name="att.canonical.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. [13.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.sortable.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">categorizes the identifier, for example as an ISBN, Social Security number, etc.
Suggested values include: 1] ISBN; 2] ISSN; 3] DOI; 4] URI; 5] VIAF; 6] ESTC; 7] OCLC</a:documentation>
               <choice>
                  <value>ISBN</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">International Standard Book Number: a 13- or (if assigned prior to 2007) 10-digit identifying number assigned by the publishing industry to a published book or similar item, registered with the <a xmlns="http://www.w3.org/1999/xhtml"
                        href="https://www.isbn-international.org"> International ISBN Agency.</a>
                  </a:documentation>
                  <value>ISSN</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">International Standard Serial Number: an eight-digit number to uniquely identify a serial publication.</a:documentation>
                  <value>DOI</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Digital Object Identifier: a unique string of letters and numbers assigned to an electronic document.</a:documentation>
                  <value>URI</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Uniform Resource Identifier: a string of characters to uniquely identify a resource, following the syntax of <a xmlns="http://www.w3.org/1999/xhtml"
                        href="https://datatracker.ietf.org/doc/html/rfc3986">RFC 3986</a>.</a:documentation>
                  <value>VIAF</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A data number in the Virtual Internet Authority File assigned to link different names in catalogs around the world for the same entity.</a:documentation>
                  <value>ESTC</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">English Short-Title Catalogue number: an identifying number assigned to a document in English printed in the British Isles or North America before 1801.</a:documentation>
                  <value>OCLC</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">OCLC control number (record number) for the union catalog record in WorldCat, a union catalog for member libraries in the Online Computer Library Center global cooperative.</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </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.pointing.attributes"/>
         <ref name="att.datable.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="editor"/>
                     <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"/>
               <ref name="relatedItem"/>
            </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 the source(s) from which an electronic text was derived or generated, typically a bibliographic description in the case of a digitized text, or a phrase such as "born digital" for a text which has no previous existence. [2.2.7. The Source Description]</a:documentation>
         <choice>
            <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 15.3.2. Declarable Elements]</a:documentation>
         <choice>
            <group>
               <group>
                  <ref name="titleStmt"/>
                  <optional>
                     <ref name="editionStmt"/>
                  </optional>
                  <optional>
                     <ref name="extent"/>
                  </optional>
                  <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.declarable.attributes"/>
         <ref name="att.sortable.attributes"/>
         <ref name="att.docStatus.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.typed.attributes"/>
         <ref name="att.resourced.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 15.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 sampling texts in the creation of a corpus or collection. [2.3.2. The Sampling Declaration 2.3. The Encoding Description 15.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 15.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 15.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 15.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="quotation">
      <element name="quotation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(quotation) specifies editorial practice adopted with respect to quotation marks in the original. [2.3.3. The Editorial Practices Declaration 15.3.2. Declarable Elements]</a:documentation>
         <zeroOrMore>
            <ref name="model.pLike"/>
         </zeroOrMore>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-quotation-quotationContents-constraint-report-14">
            <rule context="tei:quotation">
               <report 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"
                       test="not(@marks) and not (tei:p)">
On <name/>, either the @marks attribute should be used, or a paragraph of description provided</report>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <optional>
            <attribute name="marks">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(quotation marks) indicates whether or not quotation marks have been retained as content within the text.</a:documentation>
               <choice>
                  <value>none</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">no quotation marks have been retained</a:documentation>
                  <value>some</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">some quotation marks have been retained</a:documentation>
                  <value>all</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">all quotation marks have been retained</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 15.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 15.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 15.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="punctuation">
      <element name="punctuation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies editorial practice adopted with respect to punctuation marks in the original. [2.3.3. The Editorial Practices Declaration 3.2. Treatment of Punctuation]</a:documentation>
         <zeroOrMore>
            <ref name="model.pLike"/>
         </zeroOrMore>
         <ref name="att.declarable.attributes"/>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="marks">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates whether or not punctation marks have been retained as content within the text.</a:documentation>
               <choice>
                  <value>none</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">no punctuation marks have been retained</a:documentation>
                  <value>some</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">some punctuation marks have been retained</a:documentation>
                  <value>all</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">all punctuation marks have been retained</a:documentation>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="placement">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the positioning of punctuation marks that are associated with marked up text as being encoded within the element surrounding the text or immediately before or after it.</a:documentation>
               <choice>
                  <value>internal</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">punctuation marks found at the start or end of a marked up text component are included within its surrounding element;</a:documentation>
                  <value>external</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">punctuation marks found at the start or end of a marked up text component appear immediately before or after the surrounding element</a:documentation>
               </choice>
            </attribute>
         </optional>
         <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>
         <group>      
            <zeroOrMore>
               <ref name="rendition"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="namespace"/>
            </zeroOrMore>
         </group>
         <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">&lt;text&gt;</code>, or represent only a subset.</a:documentation>
               <data type="boolean"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="tagUsage">
      <element name="tagUsage">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(element usage) documents the usage of a specific element within a specified document. [2.3.4. The Tagging Declaration]</a:documentation>
         <ref name="macro.limitedContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.datcat.attributes"/>
         <attribute name="gi">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(generic identifier) specifies the name (generic identifier) of the element indicated by the tag, within the namespace indicated by the parent <code xmlns="http://www.w3.org/1999/xhtml">&lt;namespace&gt;</code> element.</a:documentation>
            <data type="Name"/>
         </attribute>
         <optional>
            <attribute name="occurs">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the number of occurrences of this element within the text.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <optional>
            <attribute name="withId">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(with unique identifier) specifies the number of occurrences of this element within the text which bear a distinct value for the global <code xmlns="http://www.w3.org/1999/xhtml">@xml:id</code> attribute.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="namespace">
      <element name="namespace">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(namespace) supplies the formal name of the namespace to which the elements documented by its children belong. [2.3.4. The Tagging Declaration]</a:documentation>
         <oneOrMore>
            <ref name="tagUsage"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <attribute name="name">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the full formal name of the namespace concerned.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S*</param>
            </data>
         </attribute>
         <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.attributes"/>
         <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">@scheme</code> attribute.</a:documentation>
               <data type="string"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="styleDefDecl">
      <element name="styleDefDecl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(style definition language declaration) specifies the name of the formal language in which style or renditional information is supplied elsewhere in the document. The specific version of the scheme may also be supplied. [2.3.5. The Default Style Definition Language Declaration]</a:documentation>
         <zeroOrMore>
            <ref name="model.pLike"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <ref name="att.styleDef.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="refsDecl">
      <element name="refsDecl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(references declaration) specifies how canonical references are constructed for this text. [2.3.6.3. Milestone Method 2.3. The Encoding Description 2.3.6. The Reference System Declaration]</a:documentation>
         <choice>
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="citeStructure"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="cRefPattern"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="refState"/>
            </oneOrMore>
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="citeStructure">
      <element name="citeStructure">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(citation structure) declares a structure and method for citing the current document. [3.11.4. Declaring Reference Systems 16.2.5.4. Citation Structures]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="citeData"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="citeStructure"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="model.descLike"/>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.citeStructurePart.attributes"/>
         <optional>
            <attribute name="delim">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(delimiter) supplies a delimiting string preceding the structural component.</a:documentation>
               <data type="string">
                  <param name="pattern">.+</param>
               </data>
            </attribute>
         </optional>
         <attribute name="match">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(match) supplies an XPath selection pattern using the syntax defined in  which identifies a set of nodes which are citable structural components. The expression may be absolute (beginning with `/`) or relative. <code xmlns="http://www.w3.org/1999/xhtml">@match</code> on a <code xmlns="http://www.w3.org/1999/xhtml">&lt;citeStructure&gt;</code> without a <code xmlns="http://www.w3.org/1999/xhtml">&lt;citeStructure&gt;</code> parent must be an absolute XPath. If it is relative, its context is set by the <code xmlns="http://www.w3.org/1999/xhtml">@match</code> of the parent <code xmlns="http://www.w3.org/1999/xhtml">&lt;citeStructure&gt;</code>.</a:documentation>
            <text/>
         </attribute>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-citeStructure-match-citestructure-outer-match-constraint-rule-13">
            <rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                  xmlns:xi="http://www.w3.org/2001/XInclude"
                  context="tei:citeStructure[not(parent::tei:citeStructure)]">
               <assert test="starts-with(@match,'/')">An XPath in @match on the outer <name/> must start with '/'.</assert>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-citeStructure-match-citestructure-inner-match-constraint-rule-14">
            <rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                  xmlns:xi="http://www.w3.org/2001/XInclude"
                  context="tei:citeStructure[parent::tei:citeStructure]">
               <assert test="not(starts-with(@match,'/'))">An XPath in @match must not start with '/' except on the outer <name/>.</assert>
            </rule>
         </pattern>
         <optional>
            <attribute name="unit">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(unit) describes the structural unit indicated by the <code xmlns="http://www.w3.org/1999/xhtml">&lt;citeStructure&gt;</code>.
Sample values include: 1] book; 2] chapter; 3] entry; 4] poem; 5] letter; 6] line; 7] section; 8] verse; 9] volume</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="citeData">
      <element name="citeData">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(citation data) specifies how information may be extracted from citation structures. [3.11.4. Declaring Reference Systems 16.2.5.4. Citation Structures]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.citeStructurePart.attributes"/>
         <attribute name="property">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(property) A URI indicating a property definition.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="cRefPattern">
      <element name="cRefPattern">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(canonical reference pattern) specifies an expression and replacement pattern for transforming a canonical reference into a URI. [2.3.6.3. Milestone Method 2.3.6. The Reference System Declaration 2.3.6.2. Search-and-Replace Method]</a:documentation>
         <zeroOrMore>
            <ref name="model.pLike"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.patternReplacement.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="prefixDef">
      <element name="prefixDef">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(prefix definition) defines a prefixing scheme used in teidata.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers]</a:documentation>
         <zeroOrMore>
            <ref name="model.pLike"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.patternReplacement.attributes"/>
         <attribute name="ident">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a name which functions as the prefix for an abbreviated pointing scheme such as a private URI scheme. The prefix constitutes the text preceding the first colon.</a:documentation>
            <data type="token">
               <param name="pattern">[a-z][a-z0-9\+\.\-]*</param>
            </data>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="listPrefixDef">
      <element name="listPrefixDef">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(list of prefix definitions) contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="desc"/>
            </zeroOrMore>
            <oneOrMore>
               <choice>
                  <ref name="prefixDef"/>
                  <ref name="listPrefixDef"/>
               </choice>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="refState">
      <element name="refState">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reference state) specifies one component of a canonical reference defined by the milestone method. [2.3.6.3. Milestone Method 2.3.6. The Reference System Declaration]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.milestoneUnit.attributes"/>
         <ref name="att.edition.attributes"/>
         <optional>
            <attribute name="length">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the fixed length of the reference component.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <optional>
            <attribute name="delim">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(delimiter) supplies a delimiting string following the reference component.</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="equiv"/>
                        <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"/>
         <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>
               <oneOrMore>
                  <ref name="catDesc"/>
               </oneOrMore>
               <zeroOrMore>
                  <choice>
                     <ref name="model.descLike"/>
                     <ref name="equiv"/>
                     <ref name="gloss"/>
                  </choice>
               </zeroOrMore>
            </choice>
            <zeroOrMore>
               <ref name="category"/>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="catDesc">
      <element name="catDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(category description) describes some category within a taxonomy or text typology, either in the form of a brief prose description or in terms of the situational parameters used by the TEI formal <code xmlns="http://www.w3.org/1999/xhtml">&lt;textDesc&gt;</code>. [2.3.7. The Classification Declaration]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.limitedPhrase"/>
               <ref name="model.catDescPart"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.canonical.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="geoDecl">
      <element name="geoDecl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(geographic coordinates declaration) documents the notation and the datum used for geographic coordinates expressed as content of the <code xmlns="http://www.w3.org/1999/xhtml">&lt;geo&gt;</code> element elsewhere within the document. [2.3.8. The Geographic Coordinates Declaration]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="datum"
                       a:defaultValue="WGS84">
               <a:documentation>supplies a commonly used code name for the datum employed.
Suggested values include: 1] WGS84 (World Geodetic System); 2] MGRS (Military Grid Reference System); 3] OSGB36 (ordnance survey great britain); 4] ED50 (European Datum coordinate system)</a:documentation>
               <choice>
                  <value>WGS84</value>
                  <a:documentation>(World Geodetic System) a pair of numbers to be interpreted as latitude followed by longitude according to the World Geodetic System.</a:documentation>
                  <value>MGRS</value>
                  <a:documentation>(Military Grid Reference System) the values supplied are geospatial entity object codes, based on</a:documentation>
                  <value>OSGB36</value>
                  <a:documentation>(ordnance survey great britain) the value supplied is to be interpreted as a British National Grid Reference.</a:documentation>
                  <value>ED50</value>
                  <a:documentation>(European Datum coordinate system) the value supplied is to be interpreted as latitude followed by longitude according to the European Datum coordinate system.</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="unitDecl">
      <element name="unitDecl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(unit declarations) provides information about units of measurement that are not members of the International System of Units. [2.3.9. The Unit Declaration]</a:documentation>
         <oneOrMore>
            <ref name="unitDef"/>
         </oneOrMore>
         <ref name="att.canonical.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="unitDef">
      <element name="unitDef">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(unit definition) contains descriptive information related to a specific unit of measurement. [2.3.9. The Unit Declaration]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="model.labelLike"/>
               <optional>
                  <ref name="model.placeNamePart"/>
               </optional>
               <optional>
                  <ref name="conversion"/>
               </optional>
               <optional>
                  <ref name="unit"/>
               </optional>     
            </choice>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.canonical.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="conversion">
      <element name="conversion">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">defines how to calculate one unit of measure in terms of another. [2.3.9. The Unit Declaration]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.formula.attributes"/>
         <ref name="att.locatable.attributes"/>
         <attribute name="fromUnit">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates a source unit of measure that is to be converted into another unit indicated in <code xmlns="http://www.w3.org/1999/xhtml">@toUnit</code>.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
         <attribute name="toUnit">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the target unit of measurement for a conversion from a source unit referenced in <code xmlns="http://www.w3.org/1999/xhtml">@fromUnit</code>.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="appInfo">
      <element name="appInfo">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(application information) records information about an application which has edited the TEI file. [2.3.11. The Application Information Element]</a:documentation>
         <oneOrMore>
            <ref name="model.applicationLike"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="application">
      <element name="application">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides information about an application which has acted upon the document. [2.3.11. The Application Information Element]</a:documentation>
         <group>
      
            <oneOrMore>
               <ref name="model.labelLike"/>
            </oneOrMore>
      
            <choice>
        
               <zeroOrMore>
                  <ref name="model.ptrLike"/>
               </zeroOrMore>
        
        
               <zeroOrMore>
                  <ref name="model.pLike"/>
               </zeroOrMore>
        
            </choice>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.datable.attributes"/>
         <attribute name="ident">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies an identifier for the application, independent of its version number or display name.</a:documentation>
            <data type="Name"/>
         </attribute>
         <attribute name="version">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a version number for the application, independent of its identifier or display name.</a:documentation>
            <data type="token">
               <param name="pattern">[\d]+[a-z]*[\d]*(\.[\d]+[a-z]*[\d]*){0,3}</param>
            </data>
         </attribute>
         <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="handNote">
      <element name="handNote">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(note on hand) describes a particular style or hand distinguished within a manuscript. [10.7.2. Writing, Decoration, and Other Notations]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.handFeatures.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="abstract">
      <element name="abstract">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a summary or formal abstract prefixed to an existing source document by the encoder. [2.4.4. Abstracts]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="model.pLike"/>
               <ref name="model.listLike"/>
               <ref name="listBibl"/>
            </choice>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="creation">
      <element name="creation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(creation) contains information about the creation of a text. [2.4.1. Creation 2.4. The Profile Description]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.limitedPhrase"/>
               <ref name="listChange"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.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 15.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"/>
         <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"
                  href="https://tools.ietf.org/html/bcp47">BCP 47</a> which is used to identify the language documented by this element, and which is referenced by the global <code xmlns="http://www.w3.org/1999/xhtml">@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 (by volume) of the text which uses this language.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="textClass">
      <element name="textClass">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(text classification) groups information which describes the nature or topic of a text in terms of a standard classification scheme, thesaurus, etc. [2.4.3. The Text Classification]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="classCode"/>
               <ref name="catRef"/>
               <ref name="keywords"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="keywords">
      <element name="keywords">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(keywords) contains a list of keywords or phrases identifying the topic or nature of a text. [2.4.3. The Text Classification]</a:documentation>
         <choice>
            <oneOrMore>
               <ref name="term"/>
            </oneOrMore>      
            <ref name="list"/>
         </choice>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="scheme">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the controlled vocabulary within which the set of keywords concerned is defined, for example by a <code xmlns="http://www.w3.org/1999/xhtml">&lt;taxonomy&gt;</code> element, or by some other resource.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="classCode">
      <element name="classCode">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(classification code) contains the classification code used for this text in some standard classification system. [2.4.3. The Text Classification]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <ref name="att.global.attributes"/>
         <attribute name="scheme">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the classification system in use, as defined by, e.g. a <code xmlns="http://www.w3.org/1999/xhtml">&lt;taxonomy&gt;</code> element, or some other resource.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="catRef">
      <element name="catRef">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(category reference) specifies one or more defined categories within some taxonomy or text typology. [2.4.3. The Text Classification]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.pointing.attributes"/>
         <optional>
            <attribute name="scheme">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the classification scheme within which the set of categories concerned is defined, for example by a <code xmlns="http://www.w3.org/1999/xhtml">&lt;taxonomy&gt;</code> element, or by some other resource.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="calendarDesc">
      <element name="calendarDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(calendar description) contains a description of the calendar system used in any dating expression found in the text. [2.4. The Profile Description 2.4.5. Calendar Description]</a:documentation>
         <oneOrMore>
            <ref name="calendar"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="calendar">
      <element name="calendar">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(calendar) describes a calendar or dating system used in a dating formula in the text. [2.4.5. Calendar Description]</a:documentation>
         <oneOrMore>
            <ref name="model.pLike"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.pointing.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="correspDesc">
      <element name="correspDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(correspondence description) contains a description of the actions related to one act of correspondence. [2.4.6. Correspondence Description]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.correspDescPart"/>
            </oneOrMore>
      
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
         </choice>
         <ref name="att.declarable.attributes"/>
         <ref name="att.canonical.attributes"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="correspAction">
      <element name="correspAction">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(correspondence action) contains a structured description of the place, the name of a person/organization and the date related to the sending/receiving of a message or any other action related to the correspondence. [2.4.6. Correspondence Description]</a:documentation>
         <choice>
            <oneOrMore>
               <ref name="model.correspActionPart"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <ref name="att.sortable.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes the nature of the action.
Suggested values include: 1] sent; 2] received; 3] transmitted; 4] redirected; 5] forwarded</a:documentation>
               <choice>
                  <value>sent</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">information concerning the sending or dispatch of a message.</a:documentation>
                  <value>received</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">information concerning the receipt of a message.</a:documentation>
                  <value>transmitted</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">information concerning the transmission of a message, i.e. between the dispatch and the next receipt, redirect or forwarding.</a:documentation>
                  <value>redirected</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">information concerning the redirection of an unread message.</a:documentation>
                  <value>forwarded</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">information concerning the forwarding of a message.</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="correspContext">
      <element name="correspContext">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(correspondence context) provides references to preceding or following correspondence related to this piece of correspondence. [2.4.6. Correspondence Description]</a:documentation>
         <oneOrMore>
            <ref name="model.correspContextPart"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="xenoData">
      <element name="xenoData">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(non-TEI metadata) provides a container element into which metadata in non-TEI formats may be placed. [2.5. Non-TEI Metadata]</a:documentation>
         <choice>
            <text/>
            <ref name="anyElement-xenoData"/>
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <ref name="att.typed.attributes"/>
         <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>
            <ref name="list"/>
            <ref name="listChange"/>
      
            <oneOrMore>
               <ref name="change"/>
            </oneOrMore>
      
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.docStatus.attributes"/>
         <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 11.7. Identifying Changes and Revisions]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.ascribed.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.docStatus.attributes"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="target">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(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="scriptNote">
      <element name="scriptNote">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes a particular script distinguished within the description of a manuscript or similar resource. [10.7.2. Writing, Decoration, and Other Notations]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.handFeatures.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="listChange">
      <element name="listChange">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.7. Identifying Changes and Revisions]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="desc"/>
            </zeroOrMore> 
            <oneOrMore>
               <choice>
                  <ref name="listChange"/>
                  <ref name="change"/>
               </choice>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.sortable.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="ordered"
                       a:defaultValue="true">
               <a:documentation>indicates whether the ordering of its child <code xmlns="http://www.w3.org/1999/xhtml">&lt;change&gt;</code> elements is to be considered significant or not</a:documentation>
               <data type="boolean"/>
            </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">&lt;TEI&gt;</code> elements may be combined within a <code xmlns="http://www.w3.org/1999/xhtml">&lt;TEI&gt;</code> (or <code xmlns="http://www.w3.org/1999/xhtml">&lt;teiCorpus&gt;</code>) element. [4. Default Text Structure 15.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>
         <sch:ns xmlns:rng="http://relaxng.org/ns/structure/1.0"
                 xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                 xmlns="http://www.tei-c.org/ns/1.0"
                 prefix="tei"
                 uri="http://www.tei-c.org/ns/1.0"/>
         <sch:ns xmlns:rng="http://relaxng.org/ns/structure/1.0"
                 xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                 xmlns="http://www.tei-c.org/ns/1.0"
                 prefix="xs"
                 uri="http://www.w3.org/2001/XMLSchema"/>
         <sch:ns xmlns:rng="http://relaxng.org/ns/structure/1.0"
                 xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                 xmlns="http://www.tei-c.org/ns/1.0"
                 prefix="rng"
                 uri="http://relaxng.org/ns/structure/1.0"/>
         <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 15.1. Varieties of Composite Text]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.global"/>
            </zeroOrMore>
            <optional>
               <group>
                  <ref name="front"/>
	                 <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
               </group>
            </optional>
            <choice>
               <ref name="body"/>
               <ref name="group"/>
            </choice>
            <zeroOrMore>
               <ref name="model.global"/>
            </zeroOrMore>
            <optional>
               <group>
                  <ref name="back"/>
	                 <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
               </group>
            </optional>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.written.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="body">
      <element name="body">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(text body) contains the whole body of a single unitary text, excluding any front or back matter. [4. Default Text Structure]</a:documentation>
         <group>
            
            <zeroOrMore>
               <ref name="model.global"/>
            </zeroOrMore>
            
            <optional>
               <group>
                  <ref name="model.divTop"/>
                  <zeroOrMore>
                     <choice>
                        <ref name="model.global"/>
                        <ref name="model.divTop"/>
                     </choice>
                  </zeroOrMore>          
               </group>
            </optional>
            
            <optional>
               <group>
                  <ref name="model.divGenLike"/>
                  <zeroOrMore>
                     <choice>
                        <ref name="model.global"/>
                        <ref name="model.divGenLike"/>
                     </choice>
                  </zeroOrMore>          
               </group>
            </optional>
      
            <choice>
                  
               <oneOrMore>
                  <group>
                     <ref name="model.divLike"/>
                     <zeroOrMore>
                        <choice>
                           <ref name="model.global"/>
                           <ref name="model.divGenLike"/>
                        </choice>
                     </zeroOrMore>
                  </group>
               </oneOrMore>
        
               <oneOrMore>
                  <group>
                     <ref name="model.div1Like"/>
                     <zeroOrMore>
                        <choice>
                           <ref name="model.global"/>
                           <ref name="model.divGenLike"/>
                        </choice>
                     </zeroOrMore>
                  </group>
               </oneOrMore>
        
               <group>
                  <oneOrMore>
                     <group>
                        <choice>
                           <ref name="schemaSpec"/>
                           <ref name="model.common"/>
                        </choice>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </group>
                  </oneOrMore>
                  <optional>
                     <choice>
            
                        <oneOrMore>
                           <group>
                              <ref name="model.divLike"/>
                              <zeroOrMore>
                                 <choice>
                                    <ref name="model.global"/>
                                    <ref name="model.divGenLike"/>
                                 </choice>
                              </zeroOrMore>
                           </group>
                        </oneOrMore>
            
                        <oneOrMore>
                           <group>
                              <ref name="model.div1Like"/>
                              <zeroOrMore>
                                 <choice>
                                    <ref name="model.global"/>
                                    <ref name="model.divGenLike"/>
                                 </choice>
                              </zeroOrMore>
                           </group>
                        </oneOrMore>
                     </choice>
                  </optional>
               </group>
            </choice>
      
      
            <zeroOrMore>
               <group>
                  <ref name="model.divBottom"/>
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
               </group>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.declaring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="group">
      <element name="group">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(group) contains the body of a composite text, grouping together a sequence of distinct texts (or groups of such texts) which are regarded as a unit for some purpose, for example the collected works of an author, a sequence of prose essays, etc. [4. Default Text Structure 4.3.1. Grouped Texts 15.1. Varieties of Composite Text]</a:documentation>
         <group>
      
            <zeroOrMore>
               <choice>
                  <ref name="model.divTop"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
      
            <group>
               <choice>
                  <ref name="text"/>
                  <ref name="group"/>
               </choice>
        
               <zeroOrMore>
                  <choice>
                     <ref name="text"/>
                     <ref name="group"/>
                     <ref name="model.global"/>
                  </choice>
               </zeroOrMore>
        
            </group>
      
            <zeroOrMore>
               <ref name="model.divBottom"/>
            </zeroOrMore>
      
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="floatingText">
      <element name="floatingText">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(floating text) contains a single text of any kind, whether unitary or composite, which interrupts the text containing it at any point and after which the surrounding text resumes. [4.3.2. Floating Texts]</a:documentation>
         <group>
      
            <zeroOrMore>
               <ref name="model.global"/>
            </zeroOrMore>
      
            <optional>
               <group>
                  <ref name="front"/>
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </optional>
            <choice>
               <ref name="body"/>
               <ref name="group"/>
            </choice>
      
            <zeroOrMore>
               <ref name="model.global"/>
            </zeroOrMore>
      
            <optional>
               <group>
                  <ref name="back"/>
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </optional>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="div">
      <element name="div">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(text division) contains a subdivision of the front, body, or back of a text. [4.1. Divisions of the Body]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.divTop"/>
        
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
            <optional>
               <group>
                  <choice>
                     <oneOrMore>
                        <group>
                           <choice>
                              <ref name="model.divLike"/>
                              <ref name="model.divGenLike"/>
                           </choice>
                           <zeroOrMore>
                              <ref name="model.global"/>
                           </zeroOrMore>
                        </group>
                     </oneOrMore>
                     <group>
                        <oneOrMore>
                           <group>
                              <choice>
                                 <ref name="schemaSpec"/>
                                 <ref name="model.common"/>
                              </choice>
                              <zeroOrMore>
                                 <ref name="model.global"/>
                              </zeroOrMore>
                           </group>
                        </oneOrMore>
                        <zeroOrMore>
                           <group>
                              <choice>
                                 <ref name="model.divLike"/>
                                 <ref name="model.divGenLike"/>
                              </choice>
                              <zeroOrMore>
                                 <ref name="model.global"/>
                              </zeroOrMore>
                           </group>
                        </zeroOrMore>
                     </group>
                  </choice>
                  <zeroOrMore>
                     <group>
                        <ref name="model.divBottom"/>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </group>
                  </zeroOrMore>
               </group>
            </optional>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-div-abstractModel-structure-div-in-l-or-lg-constraint-report-15">
            <rule context="tei:div">
               <sch:report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="(ancestor::tei:l or ancestor::tei:lg) and not(ancestor::tei:floatingText)">
        Abstract model violation: Lines may not contain higher-level structural elements such as div, unless div is a descendant of floatingText.
      </sch:report>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-div-abstractModel-structure-div-in-ab-or-p-constraint-report-16">
            <rule context="tei:div">
               <sch:report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="(ancestor::tei:p or ancestor::tei:ab) and not(ancestor::tei:floatingText)">
        Abstract model violation: p and ab may not contain higher-level structural elements such as div, unless div is a descendant of floatingText.
      </sch:report>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.divLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.written.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="div1">
      <element name="div1">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(level-1 text division) contains a first-level subdivision of the front, body, or back of a text. [4.1.2. Numbered Divisions]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.divTop"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
            <optional>
               <group>
                  <choice>
                     <oneOrMore>
                        <group>
                           <choice>
                              <ref name="model.div2Like"/>
                              <ref name="model.divGenLike"/>
                           </choice>
                           <zeroOrMore>
                              <ref name="model.global"/>
                           </zeroOrMore>
                        </group>
                     </oneOrMore>
                     <group>
                        <oneOrMore>
                           <group>
                              <choice>
                                 <ref name="schemaSpec"/>
                                 <ref name="model.common"/>
                              </choice>
                              <zeroOrMore>
                                 <ref name="model.global"/>
                              </zeroOrMore>
                           </group>
                        </oneOrMore>
                        <zeroOrMore>
                           <group>
                              <choice>
                                 <ref name="model.div2Like"/>
                                 <ref name="model.divGenLike"/>
                              </choice>
                              <zeroOrMore>
                                 <ref name="model.global"/>
                              </zeroOrMore>
                           </group>
                        </zeroOrMore>
                     </group>
                  </choice>
                  <zeroOrMore>
                     <group>
                        <ref name="model.divBottom"/>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </group>
                  </zeroOrMore>
               </group>
            </optional>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.divLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declaring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="div2">
      <element name="div2">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(level-2 text division) contains a second-level subdivision of the front, body, or back of a text. [4.1.2. Numbered Divisions]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.divTop"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
            <optional>
               <group>
                  <choice>
                     <oneOrMore>
                        <group>
                           <choice>
                              <ref name="model.div3Like"/>
                              <ref name="model.divGenLike"/>
                           </choice>
                           <zeroOrMore>
                              <ref name="model.global"/>
                           </zeroOrMore>
                        </group>
                     </oneOrMore>
                     <group>
                        <oneOrMore>
                           <group>
                              <choice>
                                 <ref name="schemaSpec"/>
                                 <ref name="model.common"/>
                              </choice>
                              <zeroOrMore>
                                 <ref name="model.global"/>
                              </zeroOrMore>
                           </group>
                        </oneOrMore>
                        <zeroOrMore>
                           <group>
                              <choice>
                                 <ref name="model.div3Like"/>
                                 <ref name="model.divGenLike"/>
                              </choice>
                              <zeroOrMore>
                                 <ref name="model.global"/>
                              </zeroOrMore>
                           </group>
                        </zeroOrMore>
                     </group>
                  </choice>
                  <zeroOrMore>
                     <group>
                        <ref name="model.divBottom"/>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </group>
                  </zeroOrMore>
               </group>
            </optional>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.divLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declaring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="div3">
      <element name="div3">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(level-3 text division) contains a third-level subdivision of the front, body, or back of a text. [4.1.2. Numbered Divisions]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.divTop"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
            <optional>
               <group>
                  <choice>
                     <oneOrMore>
                        <group>
                           <choice>
                              <ref name="model.div4Like"/>
                              <ref name="model.divGenLike"/>
                           </choice>
                           <zeroOrMore>
                              <ref name="model.global"/>
                           </zeroOrMore>
                        </group>
                     </oneOrMore>
                     <group>
                        <oneOrMore>
                           <group>
                              <choice>
                                 <ref name="schemaSpec"/>
                                 <ref name="model.common"/>
                              </choice>
                              <zeroOrMore>
                                 <ref name="model.global"/>
                              </zeroOrMore>
                           </group>
                        </oneOrMore>
                        <zeroOrMore>
                           <group>
                              <choice>
                                 <ref name="model.div4Like"/>
                                 <ref name="model.divGenLike"/>
                              </choice>
                              <zeroOrMore>
                                 <ref name="model.global"/>
                              </zeroOrMore>
                           </group>
                        </zeroOrMore>
                     </group>
                  </choice>
                  <zeroOrMore>
                     <group>
                        <ref name="model.divBottom"/>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </group>
                  </zeroOrMore>
               </group>
            </optional>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.divLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declaring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="div4">
      <element name="div4">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(level-4 text division) contains a fourth-level subdivision of the front, body, or back of a text. [4.1.2. Numbered Divisions]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.divTop"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
            <optional>
               <group>
                  <choice>
                     <oneOrMore>
                        <group>
                           <choice>
                              <ref name="model.div5Like"/>
                              <ref name="model.divGenLike"/>
                           </choice>
                           <zeroOrMore>
                              <ref name="model.global"/>
                           </zeroOrMore>
                        </group>
                     </oneOrMore>
                     <group>
                        <oneOrMore>
                           <group>
                              <choice>
                                 <ref name="schemaSpec"/>
                                 <ref name="model.common"/>
                              </choice>
                              <zeroOrMore>
                                 <ref name="model.global"/>
                              </zeroOrMore>
                           </group>
                        </oneOrMore>
                        <zeroOrMore>
                           <group>
                              <choice>
                                 <ref name="model.div5Like"/>
                                 <ref name="model.divGenLike"/>
                              </choice>
                              <zeroOrMore>
                                 <ref name="model.global"/>
                              </zeroOrMore>
                           </group>
                        </zeroOrMore>
                     </group>
                  </choice>
                  <zeroOrMore>
                     <group>
                        <ref name="model.divBottom"/>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </group>
                  </zeroOrMore>
               </group>
            </optional>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.divLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declaring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="div5">
      <element name="div5">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(level-5 text division) contains a fifth-level subdivision of the front, body, or back of a text. [4.1.2. Numbered Divisions]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.divTop"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
            <optional>
               <group>
                  <choice>
                     <oneOrMore>
                        <group>
                           <choice>
                              <ref name="model.div6Like"/>
                              <ref name="model.divGenLike"/>
                           </choice>
                           <zeroOrMore>
                              <ref name="model.global"/>
                           </zeroOrMore>
                        </group>
                     </oneOrMore>
                     <group>
                        <oneOrMore>
                           <group>
                              <choice>
                                 <ref name="schemaSpec"/>
                                 <ref name="model.common"/>
                              </choice>
                              <zeroOrMore>
                                 <ref name="model.global"/>
                              </zeroOrMore>
                           </group>
                        </oneOrMore>
                        <zeroOrMore>
                           <group>
                              <choice>
                                 <ref name="model.div6Like"/>
                                 <ref name="model.divGenLike"/>
                              </choice>
                              <zeroOrMore>
                                 <ref name="model.global"/>
                              </zeroOrMore>
                           </group>
                        </zeroOrMore>
                     </group>
                  </choice>
                  <zeroOrMore>
                     <group>
                        <ref name="model.divBottom"/>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </group>
                  </zeroOrMore>
               </group>
            </optional>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.divLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declaring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="div6">
      <element name="div6">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(level-6 text division) contains a sixth-level subdivision of the front, body, or back of a text. [4.1.2. Numbered Divisions]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.divTop"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
            <optional>
               <group>
                  <choice>
                     <oneOrMore>
                        <group>
                           <choice>
                              <ref name="model.div7Like"/>
                              <ref name="model.divGenLike"/>
                           </choice>
                           <zeroOrMore>
                              <ref name="model.global"/>
                           </zeroOrMore>
                        </group>
                     </oneOrMore>
                     <group>
                        <oneOrMore>
                           <group>
                              <choice>
                                 <ref name="schemaSpec"/>
                                 <ref name="model.common"/>
                              </choice>
                              <zeroOrMore>
                                 <ref name="model.global"/>
                              </zeroOrMore>
                           </group>
                        </oneOrMore>
                        <zeroOrMore>
                           <group>
                              <choice>
                                 <ref name="model.div7Like"/>
                                 <ref name="model.divGenLike"/>
                              </choice>
                              <zeroOrMore>
                                 <ref name="model.global"/>
                              </zeroOrMore>
                           </group>
                        </zeroOrMore>
                     </group>
                  </choice>
                  <zeroOrMore>
                     <group>
                        <ref name="model.divBottom"/>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </group>
                  </zeroOrMore>
               </group>
            </optional>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.divLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declaring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="div7">
      <element name="div7">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(level-7 text division) contains the smallest possible subdivision of the front, body or back of a text, larger than a paragraph. [4.1.2. Numbered Divisions]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.divTop"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
            <optional>
               <group>
                  <oneOrMore>
                     <group>
                        <choice>
                           <ref name="schemaSpec"/>
                           <ref name="model.common"/>
                        </choice>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </group>
                  </oneOrMore>
                  <zeroOrMore>
                     <group>
                        <ref name="model.divBottom"/>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </group>
                  </zeroOrMore>
               </group>
            </optional>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.divLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declaring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="trailer">
      <element name="trailer">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a closing title or footer appearing at the end of a division of a text. [4.2.4. Content of Textual Divisions 4.2. Elements Common to All Divisions]</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.typed.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.written.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="byline">
      <element name="byline">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(byline) contains the primary statement of responsibility given for a work on its title page or at the head or end of the work. [4.2.2. Openers and Closers 4.5. Front Matter]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.phrase"/>
               <ref name="docAuthor"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="dateline">
      <element name="dateline">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(dateline) contains a brief description of the place, date, time, etc. of production of a letter, newspaper story, or other work, prefixed or suffixed to it as a kind of heading or trailer. [4.2.2. Openers and Closers]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.phrase"/>
               <ref name="model.global"/>
               <ref name="docDate"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="argument">
      <element name="argument">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(argument) contains a formal list or prose description of the topics addressed by a subdivision of a text. [4.2. Elements Common to All Divisions 4.6. Title Pages]</a:documentation>
         <group>
      
            <zeroOrMore>
               <choice>
                  <ref name="model.global"/>
                  <ref name="model.headLike"/>
               </choice>
            </zeroOrMore>
      
            <oneOrMore>
               <group>
        
                  <ref name="model.common"/>
        
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="epigraph">
      <element name="epigraph">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(epigraph) contains a quotation, anonymous or attributed, appearing at the start or end of a section or on a title page. [4.2.3. Arguments, Epigraphs, and Postscripts 4.2. Elements Common to All Divisions 4.6. Title Pages]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="model.common"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="opener">
      <element name="opener">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(opener) groups together dateline, byline, salutation, and similar phrases appearing as a preliminary group at the start of a division, especially of a letter. [4.2. Elements Common to All Divisions]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.phrase"/>
        
               <ref name="argument"/>
               <ref name="byline"/>
               <ref name="dateline"/>
               <ref name="epigraph"/>
               <ref name="salute"/>
               <ref name="signed"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.written.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="closer">
      <element name="closer">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(closer) groups together salutations, datelines, and similar phrases appearing as a final group at the end of a division, especially of a letter. [4.2.2. Openers and Closers 4.2. Elements Common to All Divisions]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="signed"/>
               <ref name="dateline"/>
               <ref name="salute"/>
               <ref name="model.phrase"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.written.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="salute">
      <element name="salute">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(salutation) contains a salutation or greeting prefixed to a foreword, dedicatory epistle, or other division of a text, or the salutation in the closing of a letter, preface, etc. [4.2.2. Openers and Closers]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.written.attributes"/>
         <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.written.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="postscript">
      <element name="postscript">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a postscript, e.g. to a letter. [4.2. Elements Common to All Divisions]</a:documentation>
         <group>
      
            <zeroOrMore>
               <choice>
                  <ref name="model.global"/>
                  <ref name="model.divTopPart"/>
               </choice>
            </zeroOrMore>
      
      
            <ref name="model.common"/>
      
      
            <zeroOrMore>
               <choice>
                  <ref name="model.global"/>
                  <ref name="model.common"/>
               </choice>
            </zeroOrMore>
      
            <zeroOrMore>
               <group>
        
                  <ref name="model.divBottomPart"/>
        
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.written.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="titlePage">
      <element name="titlePage">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(title page) contains the title page of a text, appearing within the front or back matter. [4.6. Title Pages]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.global"/>
            </zeroOrMore>
            <ref name="model.titlepagePart"/>
            <zeroOrMore>
               <choice>
	                 <ref name="model.titlepagePart"/>
	                 <ref name="model.global"/>
               </choice>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies the title page according to any convenient typology.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="docTitle">
      <element name="docTitle">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(document title) contains the title of a document, including all its constituents, as given on a title page. [4.6. Title Pages]</a:documentation>
         <group>
      
            <zeroOrMore>
               <ref name="model.global"/>
            </zeroOrMore>
      
            <oneOrMore>
               <group>
                  <ref name="titlePart"/>
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.canonical.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="titlePart">
      <element name="titlePart">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(title part) contains a subsection or division of the title of a work, as indicated on a title page. [4.6. Title Pages]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="type"
                       a:defaultValue="main">
               <a:documentation>(type) specifies the role of this subdivision of the title.
Suggested values include: 1] main (main); 2] sub (subordinate); 3] alt (alternate); 4] short (short); 5] desc (descriptive)</a:documentation>
               <choice>
                  <value>main</value>
                  <a:documentation>(main) main title of the work</a:documentation>
                  <value>sub</value>
                  <a:documentation>(subordinate) subtitle of the work</a:documentation>
                  <value>alt</value>
                  <a:documentation>(alternate) alternative title of the work</a:documentation>
                  <value>short</value>
                  <a:documentation>(short) abbreviated form of title</a:documentation>
                  <value>desc</value>
                  <a:documentation>(descriptive) descriptive paraphrase of the work</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="docAuthor">
      <element name="docAuthor">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(document author) contains the name of the author of the document, as given on the title page (often but not always contained in a byline). [4.6. Title Pages]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.canonical.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="imprimatur">
      <element name="imprimatur">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(imprimatur) contains a formal statement authorizing the publication of a work, sometimes required to appear on a title page or its verso. [4.6. Title Pages]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="docEdition">
      <element name="docEdition">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(document edition) contains an edition statement as presented on a title page of a document. [4.6. Title Pages]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="docImprint">
      <element name="docImprint">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(document imprint) contains the imprint statement (place and date of publication, publisher name), as given (usually) at the foot of a title page. [4.6. Title Pages]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.phrase"/>
               <ref name="pubPlace"/>
               <ref name="docDate"/>
               <ref name="publisher"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="docDate">
      <element name="docDate">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(document date) contains the date of a document, as given on a title page or in a dateline. [4.6. Title Pages]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="when">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(when) gives the value of the date in standard form, i.e. 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>
         <empty/>
      </element>
   </define>
   <define name="front">
      <element name="front">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(front matter) contains any prefatory matter (headers, abstracts, title page, prefaces, dedications, etc.) found at the start of a document, before the main body. [4.6. Title Pages 4. Default Text Structure]</a:documentation>
         <group>
      
            <zeroOrMore>
               <choice>
                  <ref name="model.frontPart"/>
                  <ref name="model.pLike"/>
                  <ref name="model.pLike.front"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
            <optional>
               <group>
                  <choice>
          
                     <group>
                        <ref name="model.div1Like"/>
                        <zeroOrMore>
                           <choice>
                              <ref name="model.div1Like"/>
                              <ref name="model.frontPart"/>
                              <ref name="model.global"/>
                           </choice>
                        </zeroOrMore>
                     </group>
          
                     <group>
                        <ref name="model.divLike"/>
                        <zeroOrMore>
                           <choice>
                              <ref name="model.divLike"/>
                              <ref name="model.frontPart"/>
                              <ref name="model.global"/>
                           </choice>
                        </zeroOrMore>
                     </group>
                  </choice>
        
                  <optional>
                     <group>
                        <ref name="model.divBottom"/>
                        <zeroOrMore>
                           <choice>
                              <ref name="model.divBottom"/>
                              <ref name="model.global"/>
                           </choice>
                        </zeroOrMore>
                     </group>
                  </optional>
               </group>
            </optional>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.declaring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="back">
      <element name="back">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(back matter) contains any appendixes, etc. following the main part of a text. [4.7. Back Matter 4. Default Text Structure]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.frontPart"/>
                  <ref name="model.pLike.front"/>
                  <ref name="model.pLike"/>
                  <ref name="model.listLike"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
            <optional>
               <choice>
                  <group>
                     <ref name="model.div1Like"/>
                     <zeroOrMore>
                        <choice>
                           <ref name="model.frontPart"/>
                           <ref name="model.div1Like"/>
                           <ref name="model.global"/>
                        </choice>
                     </zeroOrMore>
                  </group>
                  <group>
                     <ref name="model.divLike"/>
                     <zeroOrMore>
                        <choice>
                           <ref name="model.frontPart"/>
                           <ref name="model.divLike"/>
                           <ref name="model.global"/>
                        </choice>
                     </zeroOrMore>
                  </group>
               </choice>
            </optional>
            <optional>
               <group>
                  <ref name="model.divBottomPart"/>
                  <zeroOrMore>
                     <choice>
                        <ref name="model.divBottomPart"/>
                        <ref name="model.global"/>
                     </choice>
                  </zeroOrMore>
               </group>
            </optional>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.declaring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="att.gaijiProp.attributes">
      <ref name="att.gaijiProp.attribute.name"/>
      <ref name="att.gaijiProp.attribute.value"/>
      <ref name="att.gaijiProp.attribute.version"/>
   </define>
   <define name="att.gaijiProp.attribute.name">
      <attribute name="name">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the name of the character or glyph property being defined.</a:documentation>
         <data type="NCName"/>
      </attribute>
   </define>
   <define name="att.gaijiProp.attribute.value">
      <attribute name="value">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the value of the character or glyph property being defined.</a:documentation>
         <data type="string"/>
      </attribute>
   </define>
   <define name="att.gaijiProp.attribute.version">
      <optional>
         <attribute name="version">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the version number of the Unicode Standard in which this property name is defined.
Suggested values include: 1] 1.0.1; 2] 1.1; 3] 2.0; 4] 2.1; 5] 3.0; 6] 3.1; 7] 3.2; 8] 4.0; 9] 4.1; 10] 5.0; 11] 5.1; 12] 5.2; 13] 6.0; 14] 6.1; 15] 6.2; 16] 6.3; 17] 7.0; 18] 8.0; 19] 9.0; 20] 10.0; 21] 11.0; 22] 12.0; 23] 12.1; 24] unassigned</a:documentation>
            <choice>
               <value>1.0.1</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>1.1</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>2.0</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>2.1</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>3.0</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>3.1</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>3.2</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>4.0</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>4.1</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>5.0</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>5.1</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>5.2</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>6.0</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>6.1</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>6.2</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>6.3</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>7.0</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>8.0</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>9.0</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>10.0</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>11.0</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>12.0</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>12.1</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>unassigned</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="g">
      <element name="g">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(character or glyph) represents a glyph, or a non-standard character. [5. Characters, Glyphs, and Writing Modes]</a:documentation>
         <text/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="ref">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to a description of the character or glyph intended.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="charDecl">
      <element name="charDecl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(character declarations) provides information about nonstandard characters and glyphs. [5.2. Markup Constructs for Representation of Characters and Glyphs]</a:documentation>
         <group>
            <optional>
               <ref name="desc"/>
            </optional>
            <oneOrMore>
               <choice>
                  <ref name="char"/>
                  <ref name="glyph"/>
               </choice>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="char">
      <element name="char">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(character) provides descriptive information about a character. [5.2. Markup Constructs for Representation of Characters and Glyphs]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="unicodeProp"/>
               <ref name="unihanProp"/>
               <ref name="localProp"/>
               <ref name="mapping"/>
               <ref name="figure"/>
               <ref name="model.graphicLike"/>
               <ref name="model.noteLike"/>
               <ref name="model.descLike"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="glyph">
      <element name="glyph">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(character glyph) provides descriptive information about a character glyph. [5.2. Markup Constructs for Representation of Characters and Glyphs]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="unicodeProp"/>
               <ref name="unihanProp"/>
               <ref name="localProp"/>
               <ref name="mapping"/>
               <ref name="figure"/>
               <ref name="model.graphicLike"/>
               <ref name="model.noteLike"/>
               <ref name="model.descLike"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="localProp">
      <element name="localProp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(locally defined property) provides a locally defined character (or glyph) property. [5.2.1. Character Properties]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.gaijiProp.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="mapping">
      <element name="mapping">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(character mapping) contains one or more characters which are related to the parent character or glyph in some respect, as specified by the <code xmlns="http://www.w3.org/1999/xhtml">@type</code> attribute. [5.2. Markup Constructs for Representation of Characters and Glyphs]</a:documentation>
         <ref name="macro.xtext"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="unihanProp">
      <element name="unihanProp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(unihan property) holds the name and value of a normative or informative Unihan character (or glyph) property as part of its attributes. [5.2.1. Character Properties]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.gaijiProp.attribute.version"/>
         <attribute name="name">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the normalized name of a unicode han database (Unihan) property</a:documentation>
            <choice>
               <value>kZVariant</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kAccountingNumeric</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kBigFive</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kCCCII</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kCNS1986</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kCNS1992</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kCangjie</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kCantonese</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kCheungBauer</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kCheungBauerIndex</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kCihaiT</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kCompatibilityVariant</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kCowles</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kDaeJaweon</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kDefinition</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kEACC</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kFenn</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kFennIndex</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kFourCornerCode</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kFrequency</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kGB0</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kGB1</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kGB3</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kGB5</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kGB7</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kGB8</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kGSR</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kGradeLevel</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kHDZRadBreak</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kHKGlyph</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kHKSCS</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kHanYu</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kHangul</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kHanyuPinlu</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kHanyuPinyin</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIBMJapan</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIICore</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRGDaeJaweon</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRGDaiKanwaZiten</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRGHanyuDaZidian</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRGKangXi</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_GSource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_HSource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_JSource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_KPSource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_KSource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_MSource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_TSource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_USource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_VSource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kJIS0213</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kJa</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kJapaneseKun</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kJapaneseOn</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kJinmeiyoKanji</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kJis0</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kJis1</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kJoyoKanji</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kKPS0</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kKPS1</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kKSC0</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kKSC1</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kKangXi</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kKarlgren</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kKorean</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kKoreanEducationHanja</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kKoreanName</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kLau</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kMainlandTelegraph</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kMandarin</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kMatthews</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kMeyerWempe</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kMorohashi</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kNelson</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kOtherNumeric</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kPhonetic</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kPrimaryNumeric</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kPseudoGB1</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kRSAdobe_Japan1_6</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kRSJapanese</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kRSKanWa</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kRSKangXi</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kRSKorean</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kRSUnicode</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kSBGY</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kSemanticVariant</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kSimplifiedVariant</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kSpecializedSemanticVariant</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kTGH</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kTaiwanTelegraph</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kTang</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kTotalStrokes</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kTraditionalVariant</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kVietnamese</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kXHC1983</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kXerox</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
            </choice>
         </attribute>
         <attribute name="value">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the value of a named Unihan property</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="unicodeProp">
      <element name="unicodeProp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(unicode property) provides a Unicode property for a character (or glyph). [5.2.1. Character Properties]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.gaijiProp.attribute.version"/>
         <attribute name="name">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the normalized name of a Unicode property.</a:documentation>
            <choice>
               <value>Age</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>AHex</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Alpha</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Alphabetic</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>ASCII_Hex_Digit</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>bc</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Bidi_C</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Bidi_Class</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Bidi_Control</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Bidi_M</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Bidi_Mirrored</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Bidi_Mirroring_Glyph</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Bidi_Paired_Bracket</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Bidi_Paired_Bracket_Type</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>blk</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Block</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>bmg</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>bpb</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>bpt</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Canonical_Combining_Class</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Case_Folding</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Case_Ignorable</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Cased</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>ccc</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>CE</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>cf</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Changes_When_Casefolded</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Changes_When_Casemapped</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Changes_When_Lowercased</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Changes_When_NFKC_Casefolded</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Changes_When_Titlecased</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Changes_When_Uppercased</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>CI</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Comp_Ex</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Composition_Exclusion</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>CWCF</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>CWCM</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>CWKCF</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>CWL</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>CWT</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>CWU</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Dash</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Decomposition_Mapping</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Decomposition_Type</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Default_Ignorable_Code_Point</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Dep</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Deprecated</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>DI</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Dia</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Diacritic</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>dm</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>dt</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>ea</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>East_Asian_Width</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>EqUIdeo</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Equivalent_Unified_Ideograph</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Expands_On_NFC</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Expands_On_NFD</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Expands_On_NFKC</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Expands_On_NFKD</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Ext</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Extender</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>FC_NFKC</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>FC_NFKC_Closure</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Full_Composition_Exclusion</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>gc</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>GCB</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>General_Category</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Gr_Base</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Gr_Ext</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Gr_Link</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Grapheme_Base</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Grapheme_Cluster_Break</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Grapheme_Extend</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Grapheme_Link</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Hangul_Syllable_Type</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Hex</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Hex_Digit</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>hst</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Hyphen</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>ID_Continue</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>ID_Start</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>IDC</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Ideo</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Ideographic</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>IDS</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>IDS_Binary_Operator</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>IDS_Trinary_Operator</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>IDSB</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>IDST</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Indic_Positional_Category</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Indic_Syllabic_Category</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>InPC</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>InSC</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>isc</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>ISO_Comment</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Jamo_Short_Name</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>jg</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Join_C</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Join_Control</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Joining_Group</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Joining_Type</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>JSN</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>jt</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kAccountingNumeric</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kCompatibilityVariant</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIICore</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_GSource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_HSource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_JSource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_KPSource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_KSource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_MSource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_TSource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_USource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kIRG_VSource</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kOtherNumeric</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kPrimaryNumeric</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>kRSUnicode</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>lb</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>lc</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Line_Break</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>LOE</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Logical_Order_Exception</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Lower</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Lowercase</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Lowercase_Mapping</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Math</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>na</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>na1</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Name</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Name_Alias</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>NChar</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>NFC_QC</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>NFC_Quick_Check</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>NFD_QC</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>NFD_Quick_Check</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>NFKC_Casefold</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>NFKC_CF</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>NFKC_QC</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>NFKC_Quick_Check</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>NFKD_QC</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>NFKD_Quick_Check</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Noncharacter_Code_Point</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>nt</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Numeric_Type</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Numeric_Value</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>nv</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>OAlpha</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>ODI</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>OGr_Ext</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>OIDC</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>OIDS</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>OLower</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>OMath</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Other_Alphabetic</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Other_Default_Ignorable_Code_Point</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Other_Grapheme_Extend</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Other_ID_Continue</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Other_ID_Start</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Other_Lowercase</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Other_Math</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Other_Uppercase</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>OUpper</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Pat_Syn</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Pat_WS</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Pattern_Syntax</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Pattern_White_Space</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>PCM</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Prepended_Concatenation_Mark</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>QMark</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Quotation_Mark</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Radical</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Regional_Indicator</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>RI</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>SB</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>sc</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>scf</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Script</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Script_Extensions</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>scx</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>SD</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Sentence_Break</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Sentence_Terminal</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Simple_Case_Folding</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Simple_Lowercase_Mapping</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Simple_Titlecase_Mapping</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Simple_Uppercase_Mapping</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>slc</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Soft_Dotted</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>stc</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>STerm</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>suc</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>tc</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Term</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Terminal_Punctuation</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Titlecase_Mapping</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>uc</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>UIdeo</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Unicode_1_Name</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Unified_Ideograph</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Upper</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Uppercase</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Uppercase_Mapping</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Variation_Selector</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Vertical_Orientation</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>vo</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>VS</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>WB</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>White_Space</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>Word_Break</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>WSpace</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>XID_Continue</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>XID_Start</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>XIDC</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>XIDS</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>XO_NFC</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>XO_NFD</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>XO_NFKC</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>XO_NFKD</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
            </choice>
         </attribute>
         <attribute name="value">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the value of a named Unicode property.</a:documentation>
            <data type="string"/>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="att.metrical.attributes">
      <ref name="att.metrical.attribute.met"/>
      <ref name="att.metrical.attribute.real"/>
      <ref name="att.metrical.attribute.rhyme"/>
   </define>
   <define name="att.metrical.attribute.met">
      <optional>
         <attribute name="met">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(metrical structure, conventional) contains a user-specified encoding for the conventional metrical structure of the element.</a:documentation>
            <data type="token"/>
         </attribute>
      </optional>
   </define>
   <define name="att.metrical.attribute.real">
      <optional>
         <attribute name="real">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(metrical structure, realized) contains a user-specified encoding for the actual realization of the conventional metrical structure applicable to the element.</a:documentation>
            <data type="token"/>
         </attribute>
      </optional>
   </define>
   <define name="att.metrical.attribute.rhyme">
      <optional>
         <attribute name="rhyme">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(rhyme scheme) specifies the rhyme scheme applicable to a group of verse lines.</a:documentation>
            <data type="token"/>
         </attribute>
      </optional>
   </define>
   <define name="att.enjamb.attributes">
      <ref name="att.enjamb.attribute.enjamb"/>
   </define>
   <define name="att.enjamb.attribute.enjamb">
      <optional>
         <attribute name="enjamb">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(enjambement) indicates that the end of a verse line is marked by enjambement.
Sample values include: 1] no; 2] yes; 3] weak; 4] strong</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="metDecl">
      <element name="metDecl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(metrical notation declaration) documents the notation employed to represent a metrical pattern when this is specified as the value of a <code xmlns="http://www.w3.org/1999/xhtml">@met</code>, <code xmlns="http://www.w3.org/1999/xhtml">@real</code>, or <code xmlns="http://www.w3.org/1999/xhtml">@rhyme</code> attribute on any structural element of a metrical text (e.g. <code xmlns="http://www.w3.org/1999/xhtml">&lt;lg&gt;</code>, <code xmlns="http://www.w3.org/1999/xhtml">&lt;l&gt;</code>, or <code xmlns="http://www.w3.org/1999/xhtml">&lt;seg&gt;</code>). [6.6. Metrical Notation Declaration 6.4. Rhyme and Metrical Analysis]</a:documentation>
         <choice>
      
            <oneOrMore>
               <choice>
                  <ref name="model.pLike"/>
                  <ref name="model.noteLike"/>
               </choice>
            </oneOrMore>
      
      
            <oneOrMore>
               <ref name="metSym"/>
            </oneOrMore>
      
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="type"
                       a:defaultValue="met real">
               <a:documentation>indicates whether the notation conveys the abstract metrical form, its actual prosodic realization, or the rhyme scheme, or some combination thereof.</a:documentation>
               <list>
                  <choice>
                     <value>met</value>
                     <a:documentation>(met attribute) declaration applies to the abstract metrical form recorded on the <code xmlns="http://www.w3.org/1999/xhtml">@met</code> attribute</a:documentation>
                     <value>real</value>
                     <a:documentation>(real attribute) declaration applies to the actual realization of the conventional metrical structure recorded on the <code xmlns="http://www.w3.org/1999/xhtml">@real</code> attribute</a:documentation>
                     <value>rhyme</value>
                     <a:documentation>declaration applies to the rhyme scheme recorded on the <code xmlns="http://www.w3.org/1999/xhtml">@rhyme</code> attribute</a:documentation>
                  </choice>
                  <optional>
                     <choice>
                        <value>met</value>
                        <a:documentation>(met attribute) declaration applies to the abstract metrical form recorded on the <code xmlns="http://www.w3.org/1999/xhtml">@met</code> attribute</a:documentation>
                        <value>real</value>
                        <a:documentation>(real attribute) declaration applies to the actual realization of the conventional metrical structure recorded on the <code xmlns="http://www.w3.org/1999/xhtml">@real</code> attribute</a:documentation>
                        <value>rhyme</value>
                        <a:documentation>declaration applies to the rhyme scheme recorded on the <code xmlns="http://www.w3.org/1999/xhtml">@rhyme</code> attribute</a:documentation>
                     </choice>
                  </optional>
                  <optional>
                     <choice>
                        <value>met</value>
                        <a:documentation>(met attribute) declaration applies to the abstract metrical form recorded on the <code xmlns="http://www.w3.org/1999/xhtml">@met</code> attribute</a:documentation>
                        <value>real</value>
                        <a:documentation>(real attribute) declaration applies to the actual realization of the conventional metrical structure recorded on the <code xmlns="http://www.w3.org/1999/xhtml">@real</code> attribute</a:documentation>
                        <value>rhyme</value>
                        <a:documentation>declaration applies to the rhyme scheme recorded on the <code xmlns="http://www.w3.org/1999/xhtml">@rhyme</code> attribute</a:documentation>
                     </choice>
                  </optional>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="pattern">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(regular expression pattern) specifies a regular expression defining any value that is legal for this notation.</a:documentation>
               <data type="token"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="metSym">
      <element name="metSym">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(metrical notation symbol) documents the intended significance of a particular character or character sequence within a metrical notation, either explicitly or in terms of other <code xmlns="http://www.w3.org/1999/xhtml">&lt;metSym&gt;</code> elements in the same <code xmlns="http://www.w3.org/1999/xhtml">&lt;metDecl&gt;</code>. [6.6. Metrical Notation Declaration]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <ref name="att.global.attributes"/>
         <attribute name="value">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the character or character sequence being documented.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="terminal"
                       a:defaultValue="true">
               <a:documentation>specifies whether the symbol is defined in terms of other symbols (<code xmlns="http://www.w3.org/1999/xhtml">@terminal</code> is set to false) or in prose (<code xmlns="http://www.w3.org/1999/xhtml">@terminal</code> is set to true).</a:documentation>
               <data type="boolean"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="caesura">
      <element name="caesura">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">marks the point at which a metrical line may be divided. [6.2. Components of the Verse Line]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="rhyme">
      <element name="rhyme">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">marks the rhyming part of a metrical line. [6.5. Rhyme]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="label">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a label (usually a single letter) to identify which part of a rhyme scheme this rhyming string instantiates.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="set">
      <element name="set">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(setting) contains a description of the setting, time, locale, appearance, etc., of the action of a play, typically found in the front matter of a printed performance text (not a stage direction). [7.1. Front and Back Matter
 ]</a:documentation>
         <group>
      
            <zeroOrMore>
               <choice>
                  <ref name="model.headLike"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
      
            <zeroOrMore>
               <group>
          
                  <ref name="model.common"/>
          
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
          
               </group>
            </zeroOrMore>
      
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="prologue">
      <element name="prologue">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(prologue) contains the prologue to a drama, typically spoken by an actor out of character, possibly in association with a particular performance or venue. [7.1.2. Prologues and Epilogues 7.1. Front and Back Matter
 ]</a:documentation>
         <group>
      
            <zeroOrMore>
               <choice>
                  <ref name="model.divTop"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
      
            <oneOrMore>
               <group>
        
                  <ref name="model.common"/>
        
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </oneOrMore>
            <zeroOrMore>
               <group>
        
                  <ref name="model.divBottom"/>
        
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="epilogue">
      <element name="epilogue">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(epilogue) contains the epilogue to a drama, typically spoken by an actor out of character, possibly in association with a particular performance or venue. [7.1.2. Prologues and Epilogues 7.1. Front and Back Matter
 ]</a:documentation>
         <group>
      
            <zeroOrMore>
               <choice>
                  <ref name="model.divTop"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
      
            <oneOrMore>
               <group>
        
                  <ref name="model.common"/>
        
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </oneOrMore>
            <zeroOrMore>
               <group>
        
                  <ref name="model.divBottom"/>
        
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="performance">
      <element name="performance">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(performance) contains a section of front or back matter describing how a dramatic piece is to be performed in general or how it was performed on some specific occasion. [7.1.3. Records of Performances 7.1. Front and Back Matter
 ]</a:documentation>
         <group>
      
            <zeroOrMore>
               <choice>
                  <ref name="model.divTop"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
      
            <oneOrMore>
               <group>
        
                  <ref name="model.common"/>
        
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </oneOrMore>
            <zeroOrMore>
               <group>
        
                  <ref name="model.divBottom"/>
        
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="castList">
      <element name="castList">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(cast list) contains a single cast list or dramatis personae. [7.1.4. Cast Lists 7.1. Front and Back Matter
 ]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.divTop"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
            <zeroOrMore>
               <group>
                  <ref name="model.common"/>
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
               </group>
            </zeroOrMore>
            <oneOrMore>
               <group>
                  <choice>
                     <ref name="castItem"/>
                     <ref name="castGroup"/>
                  </choice>
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
               </group>
            </oneOrMore>
            <zeroOrMore>
               <group>
                  <ref name="model.common"/>
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
               </group>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="castGroup">
      <element name="castGroup">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(cast list grouping) groups one or more individual <code xmlns="http://www.w3.org/1999/xhtml">&lt;castItem&gt;</code> elements within a cast list. [7.1.4. Cast Lists]</a:documentation>
         <group>
      
            <zeroOrMore>
               <choice>
                  <ref name="model.global"/>
                  <ref name="model.headLike"/>
               </choice>
            </zeroOrMore>
      
            <oneOrMore>
               <group>
                  <choice>
                     <ref name="castItem"/>
                     <ref name="castGroup"/>
                     <ref name="roleDesc"/>
                  </choice>
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </oneOrMore>
            <optional>
               <group>
                  <ref name="trailer"/>
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </optional>
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="castItem">
      <element name="castItem">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(cast list item) contains a single entry within a cast list, describing either a single role or a list of non-speaking roles. [7.1.4. Cast Lists]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.castItemPart"/>
               <ref name="model.phrase"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="type"
                       a:defaultValue="role">
               <a:documentation>characterizes the cast item.</a:documentation>
               <choice>
                  <value>role</value>
                  <a:documentation>the item describes a single role.</a:documentation>
                  <value>list</value>
                  <a:documentation>the item describes a list of non-speaking roles.</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="role">
      <element name="role">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(role) contains the name of a dramatic role, as given in a cast list. [7.1.4. Cast Lists]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="roleDesc">
      <element name="roleDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(role description) describes a character's role in a drama. [7.1.4. Cast Lists]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="actor">
      <element name="actor">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains the name of an actor appearing within a cast list. [7.1.4. Cast Lists]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.canonical.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="spGrp">
      <element name="spGrp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(speech group) contains a group of speeches or songs in a performance text presented in a source as constituting a single unit or number. [7.2.3. Grouped Speeches]</a:documentation>
         <group>
      
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
      
      
            <oneOrMore>
               <choice>
                  <ref name="model.global"/>
                  <ref name="sp"/>
                  <ref name="model.stageLike"/>
               </choice>
            </oneOrMore>
      
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.ascribed.directed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="move">
      <element name="move">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(movement) marks the actual movement of one or more characters. [7.2.4. Stage Directions]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <ref name="att.ascribed.directed.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes the movement, for example as an entrance or exit.
Suggested values include: 1] entrance; 2] exit; 3] onStage</a:documentation>
               <choice>
                  <value>entrance</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">character is entering the stage.</a:documentation>
                  <value>exit</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">character is exiting the stage.</a:documentation>
                  <value>onStage</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">character moves on stage</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="where">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the direction of a stage movement.
Sample values include: 1] L (left); 2] R (right); 3] C (center)</a:documentation>
               <list>
                  <oneOrMore>
                     <choice>
                        <data type="token">
                           <param name="pattern">[^\p{C}\p{Z}]+</param>
                        </data>
                        <data type="anyURI">
                           <param name="pattern">\S+</param>
                        </data>
                     </choice>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="perf">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(performance) identifies the performance or performances in which this movement occurred as specified by pointing to one or more <code xmlns="http://www.w3.org/1999/xhtml">&lt;performance&gt;</code> elements.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="view">
      <element name="view">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(view) describes the visual context of some part of a screen play in terms of what the spectator sees, generally independent of any dialogue. [7.3.1. Technical Information 7.3. Other Types of Performance Text]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="camera">
      <element name="camera">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(camera) describes a particular camera angle or viewpoint in a screen play. [7.3.1. Technical Information 7.3. Other Types of Performance Text]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="sound">
      <element name="sound">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(sound) describes a sound effect or musical sequence specified within a screen play or radio script. [7.3.1. Technical Information 7.3. Other Types of Performance Text]</a:documentation>
         <ref name="macro.paraContent"/>
         <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">categorizes the sound in some respect, e.g. as music, special effect, etc.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="discrete">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates whether the sound overlaps the surrounding speeches or interrupts them.</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>
         <empty/>
      </element>
   </define>
   <define name="caption">
      <element name="caption">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(caption) contains the text of a caption or other text displayed as part of a film script or screenplay. [7.3.1. Technical Information 7.3. Other Types of Performance Text]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="tech">
      <element name="tech">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(technical stage direction) describes a special-purpose stage direction that is not meant for the actors. [7.3.1. Technical Information]</a:documentation>
         <ref name="macro.paraContent"/>
         <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">categorizes the technical stage direction.
Suggested values include: 1] light; 2] sound; 3] prop; 4] block</a:documentation>
               <choice>
                  <value>light</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a lighting cue</a:documentation>
                  <value>sound</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a sound cue</a:documentation>
                  <value>prop</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a prop cue</a:documentation>
                  <value>block</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a blocking instruction</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="perf">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(performance) points to one or more <code xmlns="http://www.w3.org/1999/xhtml">&lt;performance&gt;</code> elements documenting the performance or performances to which this technical direction applies.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="att.duration.attributes">
      <ref name="att.duration.w3c.attributes"/>
      <ref name="att.duration.iso.attributes"/>
   </define>
   <define name="model.global.spoken">
      <choice>
         <ref name="pause"/>
         <ref name="vocal"/>
         <ref name="kinesic"/>
         <ref name="incident"/>
         <ref name="writing"/>
         <ref name="shift"/>
      </choice>
   </define>
   <define name="model.global.spoken_alternation">
      <choice>
         <ref name="pause"/>
         <ref name="vocal"/>
         <ref name="kinesic"/>
         <ref name="incident"/>
         <ref name="writing"/>
         <ref name="shift"/>
      </choice>
   </define>
   <define name="model.global.spoken_sequence">
      <ref name="pause"/>
      <ref name="vocal"/>
      <ref name="kinesic"/>
      <ref name="incident"/>
      <ref name="writing"/>
      <ref name="shift"/>
   </define>
   <define name="model.global.spoken_sequenceOptional">
      <optional>
         <ref name="pause"/>
      </optional>
      <optional>
         <ref name="vocal"/>
      </optional>
      <optional>
         <ref name="kinesic"/>
      </optional>
      <optional>
         <ref name="incident"/>
      </optional>
      <optional>
         <ref name="writing"/>
      </optional>
      <optional>
         <ref name="shift"/>
      </optional>
   </define>
   <define name="model.global.spoken_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="pause"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="vocal"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="kinesic"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="incident"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="writing"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="shift"/>
      </zeroOrMore>
   </define>
   <define name="model.global.spoken_sequenceRepeatable">
      <oneOrMore>
         <ref name="pause"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="vocal"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="kinesic"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="incident"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="writing"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="shift"/>
      </oneOrMore>
   </define>
   <define name="model.recordingPart">
      <choice>
         <ref name="model.dateLike"/>
         <ref name="media"/>
         <ref name="respStmt"/>
         <ref name="equipment"/>
         <ref name="broadcast"/>
      </choice>
   </define>
   <define name="model.divPart.spoken">
      <choice>
         <ref name="u"/>
         <ref name="annotationBlock"/>
      </choice>
   </define>
   <define name="model.divPart.spoken_alternation">
      <choice>
         <ref name="u"/>
         <ref name="annotationBlock"/>
      </choice>
   </define>
   <define name="model.divPart.spoken_sequence">
      <ref name="u"/>
      <ref name="annotationBlock"/>
   </define>
   <define name="model.divPart.spoken_sequenceOptional">
      <optional>
         <ref name="u"/>
      </optional>
      <optional>
         <ref name="annotationBlock"/>
      </optional>
   </define>
   <define name="model.divPart.spoken_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="u"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="annotationBlock"/>
      </zeroOrMore>
   </define>
   <define name="model.divPart.spoken_sequenceRepeatable">
      <oneOrMore>
         <ref name="u"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="annotationBlock"/>
      </oneOrMore>
   </define>
   <define name="scriptStmt">
      <element name="scriptStmt">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(script statement) contains a citation giving details of the script used for a spoken text. [8.2. Documenting the Source of Transcribed Speech 2.2.7. The Source Description 15.3.2. Declarable Elements]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
            <ref name="model.biblLike"/>
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="recordingStmt">
      <element name="recordingStmt">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(recording statement) describes a set of recordings used as the basis for transcription of a spoken text. [8.2. Documenting the Source of Transcribed Speech 2.2.7. The Source Description]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
      
            <oneOrMore>
               <ref name="recording"/>
            </oneOrMore>
      
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="recording">
      <element name="recording">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(recording event) provides details of an audio or video recording event used as the source of a spoken text, either directly or from a public broadcast. [8.2. Documenting the Source of Transcribed Speech 15.3.2. Declarable Elements]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="model.recordingPart"/>
               <ref name="model.pLike"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <ref name="att.duration.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="type"
                       a:defaultValue="audio">
               <a:documentation>the kind of recording.</a:documentation>
               <choice>
                  <value>audio</value>
                  <a:documentation>audio recording</a:documentation>
                  <value>video</value>
                  <a:documentation>audio and video recording</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="equipment">
      <element name="equipment">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(equipment) provides technical details of the equipment and media used for an audio or video recording used as the source for a spoken text. [8.2. Documenting the Source of Transcribed Speech 15.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="broadcast">
      <element name="broadcast">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(broadcast) describes a broadcast used as the source of a spoken text. [8.2. Documenting the Source of Transcribed Speech 15.3.2. Declarable Elements]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
            <ref name="model.biblLike"/>
            <ref name="recording"/>
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="transcriptionDesc">
      <element name="transcriptionDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(transcription description) describes the set of transcription conventions used, particularly for spoken material. [8.2. Documenting the Source of Transcribed Speech]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="model.labelLike"/>
               <ref name="model.ptrLike"/>
               <ref name="model.pLike"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <attribute name="ident">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies an identifier for the encoding convention, independent of any version number.</a:documentation>
            <data type="Name"/>
         </attribute>
         <optional>
            <attribute name="version">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a version number for the encoding conventions used, if any.</a:documentation>
               <data type="token">
                  <param name="pattern">[\d]+[a-z]*[\d]*(\.[\d]+[a-z]*[\d]*){0,3}</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="u">
      <element name="u">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(utterance) contains a stretch of speech usually preceded and followed by silence or by a change of speaker. [8.3.1. Utterances]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.timed.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.ascribed.directed.attributes"/>
         <ref name="att.notated.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="trans"
                       a:defaultValue="smooth">
               <a:documentation>(transition) indicates the nature of the transition between this utterance and the previous one.</a:documentation>
               <choice>
                  <value>smooth</value>
                  <a:documentation>this utterance begins without unusual pause or rapidity.</a:documentation>
                  <value>latching</value>
                  <a:documentation>this utterance begins with a markedly shorter pause than normal.</a:documentation>
                  <value>overlap</value>
                  <a:documentation>this utterance begins before the previous one has finished.</a:documentation>
                  <value>pause</value>
                  <a:documentation>this utterance begins after a noticeable pause.</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="pause">
      <element name="pause">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(pause) marks a pause either between or within utterances. [8.3.2. Pausing]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.timed.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.ascribed.directed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="vocal">
      <element name="vocal">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(vocal) marks any vocalized but not necessarily lexical phenomenon, for example voiced pauses, non-lexical backchannels, etc. [8.3.3. Vocal, Kinesic, Incident]</a:documentation>
         <zeroOrMore>
            <ref name="model.descLike"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.timed.attributes"/>
         <ref name="att.ascribed.directed.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="iterated"
                       a:defaultValue="false">
               <a:documentation>indicates whether or not the phenomenon is repeated.</a:documentation>
               <choice>
                  <data type="boolean"/>
                  <choice>
                     <value>unknown</value>
                     <a:documentation/>
                     <value>inapplicable</value>
                     <a:documentation/>
                  </choice>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="kinesic">
      <element name="kinesic">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(kinesic) marks any communicative phenomenon, not necessarily vocalized, for example a gesture, frown, etc. [8.3.3. Vocal, Kinesic, Incident]</a:documentation>
         <zeroOrMore>
            <ref name="model.descLike"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.timed.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.ascribed.directed.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="iterated"
                       a:defaultValue="false">
               <a:documentation>indicates whether or not the phenomenon is repeated.</a:documentation>
               <choice>
                  <data type="boolean"/>
                  <choice>
                     <value>unknown</value>
                     <a:documentation/>
                     <value>inapplicable</value>
                     <a:documentation/>
                  </choice>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="incident">
      <element name="incident">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(incident) marks any phenomenon or occurrence, not necessarily vocalized or communicative, for example incidental noises or other events affecting communication. [8.3.3. Vocal, Kinesic, Incident]</a:documentation>
         <zeroOrMore>
            <ref name="model.descLike"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.timed.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.ascribed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="writing">
      <element name="writing">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(writing) contains a passage of written text revealed to participants in the course of a spoken text. [8.3.4. Writing]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.ascribed.directed.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.timed.attributes"/>
         <optional>
            <attribute name="gradual">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates whether the writing is revealed all at once or gradually.</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>
         <empty/>
      </element>
   </define>
   <define name="shift">
      <element name="shift">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(shift) marks the point at which some paralinguistic feature of a series of utterances by any one speaker changes. [8.3.6. Shifts]</a:documentation>
         <empty/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-shift-shiftNew-constraint-assert-14">
            <rule context="tei:shift">
               <assert xmlns:rng="http://relaxng.org/ns/structure/1.0"
                       role="warning"
                       test="@new">              
The @new attribute should always be supplied; use the special value
"normal" to indicate that the feature concerned ceases to be
remarkable at this point.</assert>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.ascribed.attributes"/>
         <optional>
            <attribute name="feature">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a paralinguistic feature.
Suggested values include: 1] tempo; 2] loud; 3] pitch; 4] tension; 5] rhythm; 6] voice</a:documentation>
               <choice>
                  <value>tempo</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">speed of utterance.</a:documentation>
                  <value>loud</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">loudness.</a:documentation>
                  <value>pitch</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">pitch range.</a:documentation>
                  <value>tension</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">tension or stress pattern.</a:documentation>
                  <value>rhythm</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">rhythmic qualities.</a:documentation>
                  <value>voice</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">voice quality.</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="new"
                       a:defaultValue="normal">
               <a:documentation>specifies the new state of the paralinguistic feature specified.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="annotationBlock">
      <element name="annotationBlock">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">groups together various annotations, e.g. for parallel interpretations of a spoken segment. [8.4.6. Analytic Coding]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="u"/>
               <ref name="spanGrp"/>
               <ref name="model.global.spoken"/>
            </choice>
         </zeroOrMore>
         <ref name="att.ascribed.attributes"/>
         <ref name="att.timed.attributes"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="att.lexicographic.normalized.attributes">
      <ref name="att.lexicographic.normalized.attribute.norm"/>
      <ref name="att.lexicographic.normalized.attribute.orig"/>
   </define>
   <define name="att.lexicographic.normalized.attribute.norm">
      <optional>
         <attribute name="norm">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(normalized) provides the normalized/standardized form of information present in the source text in a non-normalized form</a:documentation>
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="att.lexicographic.normalized.attribute.orig">
      <optional>
         <attribute name="orig">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(original) gives the original string or is the empty string when the element does not appear in the source text.</a:documentation>
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="att.linguistic.attributes">
      <ref name="att.lexicographic.normalized.attributes"/>
      <ref name="att.linguistic.attribute.lemma"/>
      <ref name="att.linguistic.attribute.lemmaRef"/>
      <ref name="att.linguistic.attribute.pos"/>
      <ref name="att.linguistic.attribute.msd"/>
      <ref name="att.linguistic.attribute.join"/>
   </define>
   <define name="att.linguistic.attribute.lemma">
      <optional>
         <attribute name="lemma">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a lemma (base form) for the word, typically uninflected and serving both as an identifier (e.g. in dictionary contexts, as a headword), and as a basis for potential inflections.</a:documentation>
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="att.linguistic.attribute.lemmaRef">
      <optional>
         <attribute name="lemmaRef">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a pointer to a definition of the lemma for the word, for example in an online lexicon.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.linguistic.attribute.pos">
      <optional>
         <attribute name="pos">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(part of speech) indicates the part of speech assigned to a token (i.e. information on whether it is a noun, adjective, or verb), usually according to some official reference vocabulary (e.g. for German: STTS, for English: CLAWS, for Polish: NKJP, etc.).</a:documentation>
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="att.linguistic.attribute.msd">
      <optional>
         <attribute name="msd">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(morphosyntactic description) supplies morphosyntactic information for a token, usually according to some official reference vocabulary (e.g. for German: <a xmlns="http://www.w3.org/1999/xhtml"
                  href="http://www.ims.uni-stuttgart.de/forschung/ressourcen/lexika/TagSets/stts-1999.pdf">STTS-large tagset</a>; for a feature description system designed as (pragmatically) universal, see <a xmlns="http://www.w3.org/1999/xhtml"
                  href="http://universaldependencies.org/u/feat/index.html">Universal Features</a>).</a:documentation>
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="att.linguistic.attribute.join">
      <optional>
         <attribute name="join">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">when present, provides information on whether the token in question is adjacent to another, and if so, on which side.</a:documentation>
            <choice>
               <value>no</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(the token is not adjacent to another) </a:documentation>
               <value>left</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(there is no whitespace on the left side of the token) </a:documentation>
               <value>right</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(there is no whitespace on the right side of the token) </a:documentation>
               <value>both</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(there is no whitespace on either side of the token) </a:documentation>
               <value>overlap</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(the token overlaps with another; other devices (specifying the extent and the area of overlap) are needed to more precisely locate this token in the character stream) </a:documentation>
            </choice>
         </attribute>
      </optional>
   </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) indicates one or more elements containing interpretations of the element on which the <code xmlns="http://www.w3.org/1999/xhtml">@ana</code> attribute appears.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="s">
      <element name="s">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(s-unit) contains a sentence-like division of a text. [17.1. Linguistic Segment Categories 8.4.1. Segmentation]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-s-noNestedS-constraint-report-17">
            <rule context="tei:s">
               <report xmlns:rng="http://relaxng.org/ns/structure/1.0" test="tei:s">You may not nest one s element within
      another: use seg instead</report>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.segLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.notated.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="cl">
      <element name="cl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(clause) represents a grammatical clause. [17.1. Linguistic Segment Categories]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.segLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.notated.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="phr">
      <element name="phr">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(phrase) represents a grammatical phrase. [17.1. Linguistic Segment Categories]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.segLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.notated.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="w">
      <element name="w">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(word) represents a grammatical (not necessarily orthographic) word. [17.1. Linguistic Segment Categories 17.4.2. Lightweight Linguistic Annotation]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="seg"/>
               <ref name="w"/>
               <ref name="m"/>
               <ref name="c"/>
               <ref name="pc"/>
               <ref name="model.global"/>
               <ref name="model.lPart"/>
               <ref name="model.hiLike"/>
               <ref name="model.pPart.edit"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.segLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.linguistic.attributes"/>
         <ref name="att.notated.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="m">
      <element name="m">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(morpheme) represents a grammatical morpheme. [17.1. Linguistic Segment Categories]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.hiLike"/>
               <ref name="seg"/>
               <ref name="m"/>
               <ref name="c"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.segLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.notated.attributes"/>
         <optional>
            <attribute name="baseForm">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies the morpheme's base form.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="c">
      <element name="c">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(character) represents a character. [17.1. Linguistic Segment Categories]</a:documentation>
         <ref name="macro.xtext"/>
         <ref name="att.global.attributes"/>
         <ref name="att.segLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.notated.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="pc">
      <element name="pc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(punctuation character) contains a character or string of characters regarded as constituting a single punctuation mark. [17.1.2. Below the Word Level 17.4.2. Lightweight Linguistic Annotation]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="c"/>
               <ref name="model.pPart.edit"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.segLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.linguistic.attributes"/>
         <optional>
            <attribute name="force">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the extent to which this punctuation mark conventionally separates words or phrases</a:documentation>
               <choice>
                  <value>strong</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the punctuation mark is a word separator</a:documentation>
                  <value>weak</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the punctuation mark is not a word separator</a:documentation>
                  <value>inter</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the punctuation mark may or may not be a word separator</a:documentation>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="unit">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a name for the kind of unit delimited by this punctuation mark.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="pre">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates whether this punctuation mark precedes or follows the unit it delimits.</a:documentation>
               <data type="boolean"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="span">
      <element name="span">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">associates an interpretative annotation directly with a span of text. [17.3. Spans and Interpretations]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-span-targetfrom-constraint-report-18">
            <rule context="tei:span">
               <report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                       xmlns:xi="http://www.w3.org/2001/XInclude"
                       test="@from and @target">
Only one of the attributes @target and @from may be supplied on <name/>
               </report>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-span-targetto-constraint-report-19">
            <rule context="tei:span">
               <report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                       xmlns:xi="http://www.w3.org/2001/XInclude"
                       test="@to and @target">
Only one of the attributes @target and @to may be supplied on <name/>
               </report>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-span-tonotfrom-constraint-report-20">
            <rule context="tei:span">
               <report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                       xmlns:xi="http://www.w3.org/2001/XInclude"
                       test="@to and not(@from)">
If @to is supplied on <name/>, @from must be supplied as well</report>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-span-tofrom-constraint-report-21">
            <rule context="tei:span">
               <report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                       xmlns:xi="http://www.w3.org/2001/XInclude"
                       test="contains(normalize-space(@to),' ') or contains(normalize-space(@from),' ')">
The attributes @to and @from on <name/> may each contain only a single value</report>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.interpLike.attributes"/>
         <ref name="att.pointing.attributes"/>
         <optional>
            <attribute name="from">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the identifier of the node which is the starting point of the span of text being annotated; if not accompanied by a <code xmlns="http://www.w3.org/1999/xhtml">@to</code> attribute, gives the identifier of the node of the entire span of text being annotated.</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">gives the identifier of the node which is the end-point of the span of text being annotated.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="spanGrp">
      <element name="spanGrp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(span group) collects together span tags. [17.3. Spans and Interpretations]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.descLike"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="span"/>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.interpLike.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="interp">
      <element name="interp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(interpretation) summarizes a specific interpretative annotation which can be linked to a span of text. [17.3. Spans and Interpretations]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.descLike"/>
               <ref name="model.certLike"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.interpLike.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="interpGrp">
      <element name="interpGrp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(interpretation group) collects together a set of related interpretations which share responsibility or type. [17.3. Spans and Interpretations]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.descLike"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="interp"/>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.interpLike.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="model.entryLike">
      <choice>
         <ref name="superEntry"/>
         <ref name="entry"/>
         <ref name="entryFree"/>
      </choice>
   </define>
   <define name="att.entryLike.attributes">
      <ref name="att.entryLike.attribute.type"/>
      <ref name="att.typed.attribute.subtype"/>
   </define>
   <define name="att.entryLike.attribute.type">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="type"
                    a:defaultValue="main">
            <a:documentation>indicates type of entry, in dictionaries with multiple types.
Suggested values include: 1] main; 2] hom (homograph); 3] xref (cross reference); 4] affix; 5] abbr (abbreviation); 6] supplemental; 7] foreign</a:documentation>
            <choice>
               <value>main</value>
               <a:documentation>a main entry (default).</a:documentation>
               <value>hom</value>
               <a:documentation>(homograph) groups information relating to one homograph within an entry.</a:documentation>
               <value>xref</value>
               <a:documentation>(cross reference) a reduced entry whose only function is to point to another main entry (e.g. for forms of an irregular verb or for variant spellings: was pointing to be, or esthete to aesthete).</a:documentation>
               <value>affix</value>
               <a:documentation>an entry for a prefix, infix, or suffix.</a:documentation>
               <value>abbr</value>
               <a:documentation>(abbreviation) an entry for an abbreviation.</a:documentation>
               <value>supplemental</value>
               <a:documentation>a supplemental entry (for use in dictionaries which issue supplements to their main work in which they include updated information about entries).</a:documentation>
               <value>foreign</value>
               <a:documentation>an entry for a foreign word in a monolingual dictionary.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.lexicographic.attributes">
      <ref name="att.datcat.attributes"/>
      <ref name="att.lexicographic.normalized.attributes"/>
      <ref name="att.lexicographic.attribute.expand"/>
      <ref name="att.lexicographic.attribute.split"/>
      <ref name="att.lexicographic.attribute.value"/>
      <ref name="att.lexicographic.attribute.location"/>
      <ref name="att.lexicographic.attribute.mergedIn"/>
      <ref name="att.lexicographic.attribute.opt"/>
   </define>
   <define name="att.lexicographic.attribute.expand">
      <optional>
         <attribute name="expand">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(expand) gives an expanded form of information presented more concisely in the dictionary</a:documentation>
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="att.lexicographic.attribute.split">
      <optional>
         <attribute name="split">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(split) gives the list of split values for a merged form</a:documentation>
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="att.lexicographic.attribute.value">
      <optional>
         <attribute name="value">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value) gives a value which lacks any realization in the printed source text.</a:documentation>
            <data type="string"/>
         </attribute>
      </optional>
   </define>
   <define name="att.lexicographic.attribute.location">
      <optional>
         <attribute name="location">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(location) indicates an <code xmlns="http://www.w3.org/1999/xhtml">&lt;anchor&gt;</code> element typically elsewhere in the document, but possibly in another document, which is the original location of this component.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.lexicographic.attribute.mergedIn">
      <optional>
         <attribute name="mergedIn">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(merged into) gives a reference to another element, where the original appears as a merged form.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="att.lexicographic.attribute.opt">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="opt"
                    a:defaultValue="false">
            <a:documentation>(optional) indicates whether the element is optional or not</a:documentation>
            <data type="boolean"/>
         </attribute>
      </optional>
   </define>
   <define name="model.morphLike">
      <choice>
         <ref name="gram"/>
         <ref name="gen"/>
         <ref name="number"/>
         <ref name="case"/>
         <ref name="per"/>
         <ref name="tns"/>
         <ref name="mood"/>
         <ref name="iType"/>
      </choice>
   </define>
   <define name="model.morphLike_alternation">
      <choice>
         <ref name="gram"/>
         <ref name="gen"/>
         <ref name="number"/>
         <ref name="case"/>
         <ref name="per"/>
         <ref name="tns"/>
         <ref name="mood"/>
         <ref name="iType"/>
      </choice>
   </define>
   <define name="model.morphLike_sequence">
      <ref name="gram"/>
      <ref name="gen"/>
      <ref name="number"/>
      <ref name="case"/>
      <ref name="per"/>
      <ref name="tns"/>
      <ref name="mood"/>
      <ref name="iType"/>
   </define>
   <define name="model.morphLike_sequenceOptional">
      <optional>
         <ref name="gram"/>
      </optional>
      <optional>
         <ref name="gen"/>
      </optional>
      <optional>
         <ref name="number"/>
      </optional>
      <optional>
         <ref name="case"/>
      </optional>
      <optional>
         <ref name="per"/>
      </optional>
      <optional>
         <ref name="tns"/>
      </optional>
      <optional>
         <ref name="mood"/>
      </optional>
      <optional>
         <ref name="iType"/>
      </optional>
   </define>
   <define name="model.morphLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="gram"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="gen"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="number"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="case"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="per"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="tns"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="mood"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="iType"/>
      </zeroOrMore>
   </define>
   <define name="model.morphLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="gram"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="gen"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="number"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="case"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="per"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="tns"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="mood"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="iType"/>
      </oneOrMore>
   </define>
   <define name="model.lexicalRefinement">
      <choice>
         <ref name="gramGrp"/>
         <ref name="pos"/>
         <ref name="subc"/>
         <ref name="colloc"/>
         <ref name="usg"/>
         <ref name="lbl"/>
      </choice>
   </define>
   <define name="model.lexicalRefinement_alternation">
      <choice>
         <ref name="gramGrp"/>
         <ref name="pos"/>
         <ref name="subc"/>
         <ref name="colloc"/>
         <ref name="usg"/>
         <ref name="lbl"/>
      </choice>
   </define>
   <define name="model.lexicalRefinement_sequence">
      <ref name="gramGrp"/>
      <ref name="pos"/>
      <ref name="subc"/>
      <ref name="colloc"/>
      <ref name="usg"/>
      <ref name="lbl"/>
   </define>
   <define name="model.lexicalRefinement_sequenceOptional">
      <optional>
         <ref name="gramGrp"/>
      </optional>
      <optional>
         <ref name="pos"/>
      </optional>
      <optional>
         <ref name="subc"/>
      </optional>
      <optional>
         <ref name="colloc"/>
      </optional>
      <optional>
         <ref name="usg"/>
      </optional>
      <optional>
         <ref name="lbl"/>
      </optional>
   </define>
   <define name="model.lexicalRefinement_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="gramGrp"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="pos"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="subc"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="colloc"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="usg"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="lbl"/>
      </zeroOrMore>
   </define>
   <define name="model.lexicalRefinement_sequenceRepeatable">
      <oneOrMore>
         <ref name="gramGrp"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="pos"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="subc"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="colloc"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="usg"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="lbl"/>
      </oneOrMore>
   </define>
   <define name="model.gramPart">
      <choice>
         <ref name="model.morphLike"/>
         <ref name="model.lexicalRefinement"/>
      </choice>
   </define>
   <define name="model.formPart">
      <choice>
         <ref name="model.gramPart"/>
         <ref name="form"/>
         <ref name="orth"/>
         <ref name="pron"/>
         <ref name="hyph"/>
         <ref name="syll"/>
         <ref name="stress"/>
      </choice>
   </define>
   <define name="model.ptrLike.form">
      <choice>
         <ref name="oRef"/>
         <ref name="pRef"/>
      </choice>
   </define>
   <define name="model.ptrLike.form_alternation">
      <choice>
         <ref name="oRef"/>
         <ref name="pRef"/>
      </choice>
   </define>
   <define name="model.ptrLike.form_sequence">
      <ref name="oRef"/>
      <ref name="pRef"/>
   </define>
   <define name="model.ptrLike.form_sequenceOptional">
      <optional>
         <ref name="oRef"/>
      </optional>
      <optional>
         <ref name="pRef"/>
      </optional>
   </define>
   <define name="model.ptrLike.form_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="oRef"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="pRef"/>
      </zeroOrMore>
   </define>
   <define name="model.ptrLike.form_sequenceRepeatable">
      <oneOrMore>
         <ref name="oRef"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="pRef"/>
      </oneOrMore>
   </define>
   <define name="superEntry">
      <element name="superEntry">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(super entry) groups a sequence of entries within any kind of lexical resource, such as a dictionary or lexicon which function as a single unit, for example a set of homographs. [9.1. Dictionary Body and Overall Structure]</a:documentation>
         <choice>
            <group>
        
               <optional>
                  <ref name="form"/>
               </optional>
        
        
               <oneOrMore>
                  <ref name="entry"/>
               </oneOrMore>
        
            </group>
            <ref name="dictScrap"/>
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.entryLike.attributes"/>
         <ref name="att.sortable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="entry">
      <element name="entry">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(entry) contains a single structured entry in any kind of lexical resource, such as a dictionary or lexicon. [9.1. Dictionary Body and Overall Structure 9.2. The Structure of Dictionary Entries]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="hom"/>
               <ref name="sense"/>
               <ref name="pc"/>
               <ref name="model.entryPart.top"/>
               <ref name="model.global"/>
               <ref name="model.ptrLike"/>
            </choice>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.entryLike.attributes"/>
         <ref name="att.sortable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="entryFree">
      <element name="entryFree">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(unstructured entry) contains a single unstructured entry in any kind of lexical resource, such as a dictionary or lexicon. [9.1. Dictionary Body and Overall Structure 9.2. The Structure of Dictionary Entries]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.entryPart"/>
               <ref name="model.morphLike"/>
               <ref name="model.phrase"/>
               <ref name="model.inter"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.entryLike.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <ref name="att.sortable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="hom">
      <element name="hom">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(homograph) groups information relating to one homograph within an entry. [9.2. The Structure of Dictionary Entries]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="sense"/>
               <ref name="pc"/>
               <ref name="model.entryPart.top"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="sense">
      <element name="sense">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">groups together all information relating to one word sense in a dictionary entry, for example definitions, examples, and translation equivalents. [9.2. The Structure of Dictionary Entries]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="sense"/>
               <ref name="model.entryPart.top"/>
               <ref name="model.phrase"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <optional>
            <attribute name="level">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the nesting depth of this sense.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="dictScrap">
      <element name="dictScrap">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(dictionary scrap) encloses a part of a dictionary entry in which other phrase-level dictionary elements are freely combined. [9.1. Dictionary Body and Overall Structure 9.2. The Structure of Dictionary Entries]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.entryPart"/>
               <ref name="model.morphLike"/>
               <ref name="model.phrase"/>
               <ref name="model.inter"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="form">
      <element name="form">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(form information group) groups all the information on the written and spoken forms of one headword. [9.3.1. Information on Written and Spoken Forms]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.phrase"/>
               <ref name="model.inter"/>
               <ref name="model.formPart"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <ref name="att.lexicographic.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies form as simple, compound, etc.
Suggested values include: 1] simple; 2] lemma; 3] variant; 4] compound; 5] derivative; 6] inflected; 7] phrase</a:documentation>
               <choice>
                  <value>simple</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">single free lexical item</a:documentation>
                  <value>lemma</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the headword itself</a:documentation>
                  <value>variant</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a variant form</a:documentation>
                  <value>compound</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">word formed from simple lexical items</a:documentation>
                  <value>derivative</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">word derived from headword</a:documentation>
                  <value>inflected</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">word in other than usual dictionary form</a:documentation>
                  <value>phrase</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">multiple-word lexical item</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="orth">
      <element name="orth">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(orthographic form) gives the orthographic form of a dictionary headword. [9.3.1. Information on Written and Spoken Forms]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <ref name="att.lexicographic.attributes"/>
         <ref name="att.partials.attributes"/>
         <ref name="att.notated.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the type of spelling.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="pron">
      <element name="pron">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(pronunciation) contains the pronunciation(s) of the word. [9.3.1. Information on Written and Spoken Forms]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <ref name="att.notated.attributes"/>
         <ref name="att.partials.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="hyph">
      <element name="hyph">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(hyphenation) contains a hyphenated form of a dictionary headword, or hyphenation information in some other form. [9.3.1. Information on Written and Spoken Forms]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <ref name="att.notated.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="syll">
      <element name="syll">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(syllabification) contains the syllabification of the headword. [9.3.1. Information on Written and Spoken Forms]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <ref name="att.notated.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="stress">
      <element name="stress">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(stress) contains the stress pattern for a dictionary headword, if given separately. [9.3.1. Information on Written and Spoken Forms]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.notated.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="gram">
      <element name="gram">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(grammatical information) within an entry in a dictionary or a terminological data file, contains grammatical information relating to a term, word, or form. [9.3.2. Grammatical Information]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <ref name="att.lexicographic.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies grammatical information provided by <code xmlns="http://www.w3.org/1999/xhtml">&lt;gram&gt;</code> according to some convenient and shared typology, ideally one defined in an external reference taxonomy, such as the <a xmlns="http://www.w3.org/1999/xhtml"
                     href="https://www.clarin.eu/content/clarin-concept-registry">CLARIN Concept
          Registry</a>.
Sample values include: 1] pos (part of speech); 2] gen (gender); 3] num (number); 4] animate; 5] proper</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="gen">
      <element name="gen">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(gender) identifies the morphological gender of a lexical item, as given in the dictionary. [9.3.1. Information on Written and Spoken Forms]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="number">
      <element name="number">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(number) indicates grammatical number associated with a form, as given in a dictionary. [9.3.1. Information on Written and Spoken Forms 9.3.2. Grammatical Information]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="case">
      <element name="case">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(case) contains grammatical case information given by a dictionary for a given form. [9.3.1. Information on Written and Spoken Forms]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="per">
      <element name="per">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(person) contains an indication of the grammatical person (1st, 2nd, 3rd, etc.) associated with a given inflected form in a dictionary. [9.3.1. Information on Written and Spoken Forms]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="tns">
      <element name="tns">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(tense) indicates the grammatical tense associated with a given inflected form in a dictionary. [9.3.1. Information on Written and Spoken Forms]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="mood">
      <element name="mood">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(mood) contains information about the grammatical mood of verbs (e.g. indicative, subjunctive, imperative). [9.3.1. Information on Written and Spoken Forms]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="iType">
      <element name="iType">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(inflectional class) indicates the inflectional class associated with a lexical item. [9.3.1. Information on Written and Spoken Forms]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <ref name="att.lexicographic.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the type of indicator used to specify the inflection class, when it is necessary to distinguish between the usual abbreviated indications (e.g. inv) and other kinds of indicators, such as special codes referring to conjugation patterns, etc.
Sample values include: 1] abbrev; 2] verbTable</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="gramGrp">
      <element name="gramGrp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(grammatical information group) groups morpho-syntactic information about a lexical item, e.g. <code xmlns="http://www.w3.org/1999/xhtml">&lt;pos&gt;</code>, <code xmlns="http://www.w3.org/1999/xhtml">&lt;gen&gt;</code>, <code xmlns="http://www.w3.org/1999/xhtml">&lt;number&gt;</code>, <code xmlns="http://www.w3.org/1999/xhtml">&lt;case&gt;</code>, or <code xmlns="http://www.w3.org/1999/xhtml">&lt;iType&gt;</code> (inflectional class). [9.3.2. Grammatical Information]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.phrase"/>
               <ref name="model.inter"/>
               <ref name="model.gramPart"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="pos">
      <element name="pos">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(part of speech) indicates the part of speech assigned to a dictionary headword such as noun, verb, or adjective. [9.3.2. Grammatical Information]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="subc">
      <element name="subc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(subcategorization) contains subcategorization information (transitive/intransitive, countable/non-countable, etc.) [9.3.2. Grammatical Information]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="colloc">
      <element name="colloc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(collocate) contains any sequence of words that co-occur with the headword with significant frequency. [9.3.2. Grammatical Information]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="def">
      <element name="def">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(definition) contains definition text in a dictionary entry. [9.3.3.1. Definitions]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="etym">
      <element name="etym">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(etymology) encloses the etymological information in a dictionary entry. [9.3.4. Etymological Information]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.global"/>
               <ref name="model.inter"/>
               <ref name="model.phrase"/>
               <ref name="def"/>
               <ref name="etym"/>
               <ref name="gramGrp"/>
               <ref name="lbl"/>
               <ref name="usg"/>
               <ref name="xr"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="lang">
      <element name="lang">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(language name) contains the name of a language mentioned in etymological or other linguistic discussion. [9.3.4. Etymological Information]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="usg">
      <element name="usg">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(usage) contains usage information in a dictionary entry. [9.3.5.2. Usage Information and Other Labels]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <ref name="att.lexicographic.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies the usage information using any convenient typology.
Sample values include: 1] geo (geographic); 2] time; 3] dom (domain); 4] register (register); 5] style; 6] plev (preference level); 7] lang (language); 8] gram (grammatical); 9] syn (synonym); 10] hyper (hypernym); 11] colloc (collocation); 12] comp (complement); 13] obj (object); 14] subj (subject); 15] verb; 16] hint</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="lbl">
      <element name="lbl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(label) contains a label for a form, example, translation, or other piece of information, e.g. abbreviation for, contraction of, literally, approximately, synonyms:, etc. [9.3.1. Information on Written and Spoken Forms 9.3.3.2. Translation Equivalents 9.3.5.3. Cross-References to Other Entries]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <ref name="att.lexicographic.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies the label using any convenient typology.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="xr">
      <element name="xr">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(cross-reference phrase) contains a phrase, sentence, or icon referring the reader to some other location in this or another text. [9.3.5.3. Cross-References to Other Entries]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.phrase"/>
               <ref name="model.inter"/>
               <ref name="usg"/>
               <ref name="lbl"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <ref name="att.lexicographic.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the type of cross reference, using any convenient typology.
Sample values include: 1] syn (synonym); 2] etym (etymological); 3] cf (compare or consult); 4] illus (illustration)</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="re">
      <element name="re">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(related entry) contains a dictionary entry for a lexical item related to the headword, such as a compound phrase or derived form, embedded inside a larger entry. [9.3.6. Related Entries]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="sense"/>
               <ref name="model.entryPart.top"/>
               <ref name="model.phrase"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="oRef">
      <element name="oRef">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(orthographic-form reference) in a dictionary example, indicates a reference to the orthographic form(s) of the headword. [9.4. Headword and Pronunciation References]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="oRef"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <ref name="att.lexicographic.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.notated.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the kind of typographic modification made to the headword in the reference.
Sample values include: 1] cap (capital); 2] noHyph (no hyphen)</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="pRef">
      <element name="pRef">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(pronunciation reference) in a dictionary example, indicates a reference to the pronunciation(s) of the headword. [9.4. Headword and Pronunciation References]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="pRef"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.lexicographic.attributes"/>
         <ref name="att.notated.attributes"/>
         <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="att.msClass.attributes">
      <ref name="att.msClass.attribute.class"/>
   </define>
   <define name="att.msClass.attribute.class">
      <optional>
         <attribute name="class">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the text types or classifications applicable to this item by pointing to other elements or resources defining the classification concerned. </a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="msDesc">
      <element name="msDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(manuscript description) contains a description of a single identifiable manuscript or other text-bearing object such as an early printed book. [10.1. Overview]</a:documentation>
         <group>
            <ref name="msIdentifier"/>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="model.pLike"/>
               </oneOrMore>
               <group>
                  <optional>
                     <ref name="msContents"/>
                  </optional>
                  <optional>
                     <ref name="physDesc"/>
                  </optional>
                  <optional>
                     <ref name="history"/>
                  </optional>
                  <optional>
                     <ref name="additional"/>
                  </optional>
                  <choice>
                     <zeroOrMore>
                        <ref name="msPart"/>
                     </zeroOrMore>
                     <zeroOrMore>
                        <ref name="msFrag"/>
                     </zeroOrMore>
                  </choice>
               </group>
            </choice>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.sortable.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.docStatus.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="catchwords">
      <element name="catchwords">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(catchwords) describes the system used to ensure correct ordering of the quires or similar making up a codex, incunable, or other object typically by means of annotations at the foot of the page. [10.3.7. Catchwords, Signatures, Secundo Folio]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-catchwords-catchword_in_msDesc-constraint-assert-15">
            <rule context="tei:catchwords">
               <sch:assert xmlns:rng="http://relaxng.org/ns/structure/1.0"
                           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="ancestor::tei:msDesc or ancestor::tei:egXML">The <sch:name/> element should not be used outside of msDesc.</sch:assert>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="dimensions">
      <element name="dimensions">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(dimensions) contains a dimensional specification. [10.3.4. Dimensions]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="dim"/>
               <ref name="model.dimLike"/>
            </choice>
         </zeroOrMore>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-dimensions-duplicateDim-constraint-report-22">
            <rule context="tei:dimensions">
               <report xmlns:rng="http://relaxng.org/ns/structure/1.0" test="count(tei:width)&gt; 1">
The element <name/> may appear once only
      </report>
               <report xmlns:rng="http://relaxng.org/ns/structure/1.0" test="count(tei:height)&gt; 1">
The element <name/> may appear once only
      </report>
               <report xmlns:rng="http://relaxng.org/ns/structure/1.0" test="count(tei:depth)&gt; 1">
The element <name/> may appear once only
      </report>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates which aspect of the object is being measured.
Sample values include: 1] leaves; 2] ruled; 3] pricked; 4] written; 5] miniatures; 6] binding; 7] box</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="dim">
      <element name="dim">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains any single measurement forming part of a dimensional specification of some sort. [10.3.4. Dimensions]</a:documentation>
         <ref name="macro.xtext"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="height">
      <element name="height">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(height) contains a measurement measured along the axis at a right angle to the bottom of the object. [10.3.4. Dimensions]</a:documentation>
         <ref name="macro.xtext"/>
         <ref name="att.global.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="depth">
      <element name="depth">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(depth) contains a measurement from the front to the back of an object, perpendicular to the measurement given by the <code xmlns="http://www.w3.org/1999/xhtml">&lt;width&gt;</code> element. [10.3.4. Dimensions]</a:documentation>
         <ref name="macro.xtext"/>
         <ref name="att.global.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="width">
      <element name="width">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(width) contains a measurement of an object along the axis parallel to its bottom, e.g. perpendicular to the spine of a book or codex. [10.3.4. Dimensions]</a:documentation>
         <ref name="macro.xtext"/>
         <ref name="att.global.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="heraldry">
      <element name="heraldry">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(heraldry) contains a heraldic formula or phrase, typically found as part of a blazon, coat of arms, etc.  [10.3.8. Heraldry]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="locus">
      <element name="locus">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(locus) defines a location within a manuscript, manuscript part, or other object typically as a (possibly discontinuous) sequence of folio references. [10.3.5. References to Locations within a Manuscript]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="hi"/>
               <ref name="locus"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="scheme">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(scheme) identifies the foliation scheme in terms of which the location is being specified by pointing to some <code xmlns="http://www.w3.org/1999/xhtml">&lt;foliation&gt;</code> element defining it, or to some other equivalent resource.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="from">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(from) specifies the starting point of the location in a normalized form, typically a page number.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="to">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(to) specifies the end-point of the location in a normalized form, typically as a page number.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="locusGrp">
      <element name="locusGrp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(locus group) groups a number of locations which together form a distinct but discontinuous item within a manuscript, manuscript part, or other object. [10.3.5. References to Locations within a Manuscript]</a:documentation>
         <oneOrMore>
            <ref name="locus"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="scheme">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(scheme) identifies the foliation scheme in terms of which all the locations contained by the group are specified by pointing to some <code xmlns="http://www.w3.org/1999/xhtml">&lt;foliation&gt;</code> element defining it, or to some other equivalent resource.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="material">
      <element name="material">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(material) contains a word or phrase describing the material of which the object being described is composed. [10.3.2. Material and Object Type]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.canonical.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="function">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes the function or use of the material in relation to the object as a whole.
Sample values include: 1] binding; 2] endband; 3] slipcase; 4] support; 5] tie</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="target">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies one or more elements to which the metamark applies.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="objectType">
      <element name="objectType">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(object type) contains a word or phrase describing the type of object being referred to. [10.3.2. Material and Object Type]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.canonical.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="origDate">
      <element name="origDate">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(origin date) contains any form of date, used to identify the date of origin for a manuscript, manuscript part, or other object. [10.3.1. Origination]</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.datable.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="origPlace">
      <element name="origPlace">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(origin place) contains any form of place name, used to identify the place of origin for a manuscript, manuscript part, or other object. [10.3.1. Origination]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="secFol">
      <element name="secFol">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(second folio) marks the word or words taken from a fixed point in a codex (typically the beginning of the second leaf) in order to provide a unique identifier for it.  [10.3.7. Catchwords, Signatures, Secundo Folio]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-secFol-secFol_in_msDesc-constraint-assert-16">
            <rule context="tei:secFol">
               <sch:assert xmlns:rng="http://relaxng.org/ns/structure/1.0"
                           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="ancestor::tei:msDesc or ancestor::tei:egXML">The <sch:name/> element should not be used outside of msDesc.</sch:assert>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="signatures">
      <element name="signatures">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(signatures) contains discussion of the leaf or quire signatures found within a codex or similar object. [10.3.7. Catchwords, Signatures, Secundo Folio]</a:documentation>
         <ref name="macro.specialPara"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-signatures-signatures_in_msDesc-constraint-assert-17">
            <rule context="tei:signatures">
               <sch:assert xmlns:rng="http://relaxng.org/ns/structure/1.0"
                           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="ancestor::tei:msDesc or ancestor::tei:egXML">The <sch:name/> element should not be used outside of msDesc.</sch:assert>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="stamp">
      <element name="stamp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(stamp) contains a word or phrase describing a stamp or similar device. [10.3.3. Watermarks and Stamps]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.datable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="watermark">
      <element name="watermark">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(watermark) contains a word or phrase describing a watermark or similar device. [10.3.3. Watermarks and Stamps]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.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. [10.4. The Manuscript Identifier]</a:documentation>
         <group>
            <group>
               <optional>
                  <ref name="placeName"/>
               </optional>
               <optional>
                  <ref name="bloc"/>
               </optional>
               <optional>
                  <ref name="country"/>
               </optional>
               <optional>
                  <ref name="region"/>
               </optional>
               <optional>
                  <ref name="settlement"/>
               </optional>
               <optional>
                  <ref name="district"/>
               </optional>
               <optional>
                  <ref name="geogName"/>
               </optional>
        
               <optional>
                  <ref name="institution"/>
               </optional>
        
        
               <optional>
                  <ref name="repository"/>
               </optional>
        
        
               <zeroOrMore>
                  <ref name="collection"/>
               </zeroOrMore>
        
        
               <zeroOrMore>
                  <ref name="idno"/>
               </zeroOrMore>
        
            </group>
      
            <zeroOrMore>
               <choice>
                  <ref name="msName"/>
                  <ref name="objectName"/>
                  <ref name="altIdentifier"/>
               </choice>
            </zeroOrMore>
      
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-msIdentifier-msId_minimal-constraint-report-25">
            <rule context="tei:msIdentifier">
               <report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                       test="not(parent::tei:msPart) and (local-name(*[1])='idno' or local-name(*[1])='altIdentifier' or normalize-space(.)='')">An msIdentifier must contain either a repository or location.</report>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="institution">
      <element name="institution">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(institution) contains the name of an organization such as a university or library, with which a manuscript or other object is identified, generally its holding institution. [10.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="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. [10.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="collection">
      <element name="collection">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(collection) contains the name of a collection of manuscripts or other objects, not necessarily located within a single repository. [10.4. The Manuscript Identifier]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <ref name="att.global.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="altIdentifier">
      <element name="altIdentifier">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(alternative identifier) contains an alternative or former structured identifier used for a manuscript or other object, such as a former catalogue number. [10.4. The Manuscript Identifier]</a:documentation>
         <group>
            <optional>
               <ref name="placeName"/>
            </optional>
            <optional>
               <ref name="bloc"/>
            </optional>
            <optional>
               <ref name="country"/>
            </optional>
            <optional>
               <ref name="region"/>
            </optional>
            <optional>
               <ref name="settlement"/>
            </optional>
            <optional>
               <ref name="district"/>
            </optional>
            <optional>
               <ref name="geogName"/>
            </optional>
     
            <optional>
               <ref name="institution"/>
            </optional>
     
     
            <optional>
               <ref name="repository"/>
            </optional>
     
     
            <optional>
               <ref name="collection"/>
            </optional>
     
            <ref name="idno"/>
     
            <optional>
               <ref name="note"/>
            </optional>
     
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.datable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="msName">
      <element name="msName">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(alternative name) contains any form of unstructured alternative name used for a manuscript or other object, such as an ocellus nominum, or nickname. [10.4. The Manuscript Identifier]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="rs"/>
               <ref name="name"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="colophon">
      <element name="colophon">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(colophon) contains the colophon of an item: that is, a statement providing information regarding the date, place, agency, or reason for production of the manuscript or other object. [10.6.1. The msItem and msItemStruct Elements]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.msExcerpt.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="explicit">
      <element name="explicit">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(explicit) contains the explicit of a item, that is, the closing words of the text proper, exclusive of any rubric or colophon which might follow it. [10.6.1. The msItem and msItemStruct Elements]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.msExcerpt.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="filiation">
      <element name="filiation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(filiation) contains information concerning the manuscript or other object's filiation, i.e. its relationship to other surviving manuscripts or other objects of the same text or contents, its protographs, antigraphs and apographs. [10.6.1. The msItem and msItemStruct Elements]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="finalRubric">
      <element name="finalRubric">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(final rubric) contains the string of words that denotes the end of a text division, often with an assertion as to its author and title, usually set off from the text itself by red ink, by a different size or type of script, or by some other such visual device. [10.6.1. The msItem and msItemStruct Elements]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.msExcerpt.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="incipit">
      <element name="incipit">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains the incipit of a manuscript or similar object item, that is the opening words of the text proper, exclusive of any rubric which might precede it, of sufficient length to identify the work uniquely; such incipits were, in former times, frequently used a means of reference to a work, in place of a title. [10.6.1. The msItem and msItemStruct Elements]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.msExcerpt.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="msContents">
      <element name="msContents">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(manuscript contents) describes the intellectual content of a manuscript, manuscript part, or other object either as a series of paragraphs or as a series of structured manuscript items. [10.6. Intellectual Content]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
            <group>
        
               <optional>
                  <ref name="summary"/>
               </optional>
        
        
               <optional>
                  <ref name="textLang"/>
               </optional>
        
        
               <optional>
                  <ref name="titlePage"/>
               </optional>
        
        
               <zeroOrMore>
                  <choice>
                     <ref name="msItem"/>
                     <ref name="msItemStruct"/>
                  </choice>
               </zeroOrMore>
        
            </group>
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.msExcerpt.attributes"/>
         <ref name="att.msClass.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="msItem">
      <element name="msItem">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(manuscript item) describes an individual work or item within the intellectual content of a manuscript, manuscript part, or other object. [10.6.1. The msItem and msItemStruct Elements]</a:documentation>
         <group>
      
            <zeroOrMore>
               <choice>
                  <ref name="locus"/>
                  <ref name="locusGrp"/>
               </choice>
            </zeroOrMore>
      
            <choice>
        
               <oneOrMore>
                  <ref name="model.pLike"/>
               </oneOrMore>
        
        
               <oneOrMore>
                  <choice>
                     <ref name="model.titlepagePart"/>
                     <ref name="model.msItemPart"/>
                     <ref name="model.global"/>
                  </choice>
               </oneOrMore>
        
            </choice>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.msExcerpt.attributes"/>
         <ref name="att.msClass.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="msItemStruct">
      <element name="msItemStruct">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(structured manuscript item) contains a structured description for an individual work or item within the intellectual content of a manuscript, manuscript part, or other object. [10.6.1. The msItem and msItemStruct Elements]</a:documentation>
         <group>
      
            <optional>
               <choice>
                  <ref name="locus"/>
                  <ref name="locusGrp"/>
               </choice>
            </optional>
      
            <choice>
        
               <oneOrMore>
                  <ref name="model.pLike"/>
               </oneOrMore>
        
               <group>
          
                  <zeroOrMore>
                     <ref name="author"/>
                  </zeroOrMore>
          
          
                  <zeroOrMore>
                     <ref name="respStmt"/>
                  </zeroOrMore>
          
          
                  <zeroOrMore>
                     <ref name="title"/>
                  </zeroOrMore>
          
          
                  <optional>
                     <ref name="rubric"/>
                  </optional>
          
          
                  <optional>
                     <ref name="incipit"/>
                  </optional>
          
          
                  <zeroOrMore>
                     <ref name="msItemStruct"/>
                  </zeroOrMore>
          
          
                  <optional>
                     <ref name="explicit"/>
                  </optional>
          
          
                  <optional>
                     <ref name="finalRubric"/>
                  </optional>
          
          
                  <zeroOrMore>
                     <ref name="colophon"/>
                  </zeroOrMore>
          
          
                  <zeroOrMore>
                     <ref name="decoNote"/>
                  </zeroOrMore>
          
          
                  <zeroOrMore>
                     <ref name="listBibl"/>
                  </zeroOrMore>
          
          
                  <zeroOrMore>
                     <choice>
                        <ref name="bibl"/>
                        <ref name="biblStruct"/>
                     </choice>
                  </zeroOrMore>
          
                  <optional>
                     <ref name="filiation"/>
                  </optional>
            
                  <zeroOrMore>
                     <ref name="model.noteLike"/>
                  </zeroOrMore>
          
          
                  <optional>
                     <ref name="textLang"/>
                  </optional>
          
               </group>
            </choice>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.msExcerpt.attributes"/>
         <ref name="att.msClass.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="rubric">
      <element name="rubric">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(rubric) contains the text of any rubric or heading attached to a particular manuscript item, that is, a string of words through which a manuscript or other object signals the beginning of a text division, often with an assertion as to its author and title, which is in some way set off from the text itself, typically in red ink, or by use of different size or type of script, or some other such visual device. [10.6.1. The msItem and msItemStruct Elements]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.msExcerpt.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="summary">
      <element name="summary">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains an overview of the available information concerning some aspect of an item or object (for example, its intellectual content, history, layout, typography etc.) as a complement or alternative to the more detailed information carried by more specific elements. [10.6. Intellectual Content]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="physDesc">
      <element name="physDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(physical description) contains a full physical description of a manuscript, manuscript part, or other object optionally subdivided using more specialized elements from the model.physDescPart class. [10.7. Physical Description]</a:documentation>
         <group>
      
            <zeroOrMore>
               <ref name="model.pLike"/>
            </zeroOrMore>
      
      
        
            <optional>
               <ref name="objectDesc"/>
            </optional>
            <optional>
               <ref name="handDesc"/>
            </optional>
            <optional>
               <ref name="typeDesc"/>
            </optional>
            <optional>
               <ref name="scriptDesc"/>
            </optional>
            <optional>
               <ref name="musicNotation"/>
            </optional>
            <optional>
               <ref name="decoDesc"/>
            </optional>
            <optional>
               <ref name="additions"/>
            </optional>
            <optional>
               <ref name="bindingDesc"/>
            </optional>
            <optional>
               <ref name="sealDesc"/>
            </optional>
            <optional>
               <ref name="accMat"/>
            </optional>
      
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="objectDesc">
      <element name="objectDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(object description) contains a description of the physical components making up the object which is being described. [10.7.1. Object Description]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
            <group>
        
               <optional>
                  <ref name="supportDesc"/>
               </optional>
        
        
               <optional>
                  <ref name="layoutDesc"/>
               </optional>
        
            </group>
         </choice>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="form">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(form) a short project-specific name identifying the physical form of the carrier, for example as a codex, roll, fragment, partial leaf, cutting etc.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="supportDesc">
      <element name="supportDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(support description) groups elements describing the physical support for the written part of a manuscript or other object. [10.7.1. Object Description]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
            <group>
        
               <optional>
                  <ref name="support"/>
               </optional>
        
        
               <optional>
                  <ref name="extent"/>
               </optional>
        
        
               <zeroOrMore>
                  <ref name="foliation"/>
               </zeroOrMore>
        
        
               <optional>
                  <ref name="collation"/>
               </optional>
        
        
               <optional>
                  <ref name="condition"/>
               </optional>
        
            </group>
         </choice>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="material">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(material) a short project-defined name for the material composing the majority of the support
Suggested values include: 1] paper; 2] parch (parchment); 3] mixed</a:documentation>
               <choice>
                  <value>paper</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                  <value>parch</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(parchment) </a:documentation>
                  <value>mixed</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="support">
      <element name="support">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(support) contains a description of the materials etc. which make up the physical support for the written part of a manuscript or other object. [10.7.1. Object Description]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="collation">
      <element name="collation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(collation) contains a description of how the leaves, bifolia, or similar objects are physically arranged. [10.7.1. Object Description]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="foliation">
      <element name="foliation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(foliation) describes the numbering system or systems used to count the leaves or pages in a codex or similar object. [10.7.1.4. Foliation]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="condition">
      <element name="condition">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(condition) contains a description of the physical condition of the manuscript or object. [10.7.1.5. Condition]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="layoutDesc">
      <element name="layoutDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(layout description) collects the set of layout descriptions applicable to a manuscript or other object. [10.7.2. Writing, Decoration, and Other Notations]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
            <group>
        
               <optional>
                  <ref name="summary"/>
               </optional>
        
        
               <oneOrMore>
                  <ref name="layout"/>
               </oneOrMore>
        
            </group>
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="layout">
      <element name="layout">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(layout) describes how text is laid out on the page or surface of the object, including information about any ruling, pricking, or other evidence of page-preparation techniques. [10.7.2. Writing, Decoration, and Other Notations]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="columns">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(columns) specifies the number of columns per page</a:documentation>
               <list>
                  <data type="nonNegativeInteger"/>
                  <optional>
                     <data type="nonNegativeInteger"/>
                  </optional>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="streams">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(textual streams) indicates the number of streams per page, each of which contains an independent textual stream</a:documentation>
               <list>
                  <data type="nonNegativeInteger"/>
                  <optional>
                     <data type="nonNegativeInteger"/>
                  </optional>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="ruledLines">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(ruled lines) specifies the number of ruled lines per column</a:documentation>
               <list>
                  <data type="nonNegativeInteger"/>
                  <optional>
                     <data type="nonNegativeInteger"/>
                  </optional>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="writtenLines">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(written lines) specifies the number of written lines per column</a:documentation>
               <list>
                  <data type="nonNegativeInteger"/>
                  <optional>
                     <data type="nonNegativeInteger"/>
                  </optional>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="handDesc">
      <element name="handDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(description of hands) contains a description of all the different hands used in a manuscript or other object. [10.7.2. Writing, Decoration, and Other Notations]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
            <group>
        
               <optional>
                  <ref name="summary"/>
               </optional>
        
        
               <oneOrMore>
                  <ref name="handNote"/>
               </oneOrMore>
        
            </group>
         </choice>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="hands">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(hands) specifies the number of distinct hands identified within the manuscript</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="typeDesc">
      <element name="typeDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(typeface description) contains a description of the typefaces or other aspects of the printing of an incunable or other printed source. [10.7.2.1. Writing]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
            <group>
        
               <optional>
                  <ref name="summary"/>
               </optional>
        
        
               <oneOrMore>
                  <ref name="typeNote"/>
               </oneOrMore>
        
            </group>
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="typeNote">
      <element name="typeNote">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(typographic note) describes a particular font or other significant typographic feature distinguished within the description of a printed resource. [10.7.2. Writing, Decoration, and Other Notations]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.handFeatures.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="scriptDesc">
      <element name="scriptDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(script description) contains a description of the scripts used in a manuscript or other object. [10.7.2.1. Writing]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
            <group>
        
               <optional>
                  <ref name="summary"/>
               </optional>
        
        
               <oneOrMore>
                  <ref name="scriptNote"/>
               </oneOrMore>
        
            </group>
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="musicNotation">
      <element name="musicNotation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(music notation) contains description of type of musical notation. [10.7.2. Writing, Decoration, and Other Notations]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="decoDesc">
      <element name="decoDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(decoration description) contains a description of the decoration of a manuscript or other object, either as in paragraphs, or as one or more <code xmlns="http://www.w3.org/1999/xhtml">&lt;decoNote&gt;</code> elements. [10.7.3. Bindings, Seals, and Additional Material]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
            <group>
        
               <optional>
                  <ref name="summary"/>
               </optional>
        
        
               <oneOrMore>
                  <ref name="decoNote"/>
               </oneOrMore>
        
            </group>
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="decoNote">
      <element name="decoNote">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(note on decoration) contains a note describing either a decorative component of a manuscript or other object, or a fairly homogenous class of such components. [10.7.3. Bindings, Seals, and Additional Material]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="additions">
      <element name="additions">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(additions) contains a description of any significant additions found within a manuscript or other object, such as marginalia or other annotations. [10.7.2. Writing, Decoration, and Other Notations]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="bindingDesc">
      <element name="bindingDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(binding description) describes the present and former bindings of a manuscript or other object, either as a series of paragraphs or as a series of distinct <code xmlns="http://www.w3.org/1999/xhtml">&lt;binding&gt;</code> elements, one for each binding of the manuscript. [10.7.3.1. Binding Descriptions]</a:documentation>
         <choice>
      
            <oneOrMore>
               <choice>
                  <ref name="model.pLike"/>
                  <ref name="decoNote"/>
                  <ref name="condition"/>
               </choice>
            </oneOrMore>
      
      
            <oneOrMore>
               <ref name="binding"/>
            </oneOrMore>
      
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="binding">
      <element name="binding">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(binding) contains a description of one binding, i.e. type of covering, boards, etc. applied to a manuscript or other object. [10.7.3.1. Binding Descriptions]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="model.pLike"/>
               <ref name="condition"/>
               <ref name="decoNote"/>
            </choice>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <optional>
            <attribute name="contemporary">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(contemporary) specifies whether or not the binding is contemporary with the majority of its contents</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>
         <empty/>
      </element>
   </define>
   <define name="sealDesc">
      <element name="sealDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(seal description) describes the seals or similar items related to the object described, either as a series of paragraphs or as a series of <code xmlns="http://www.w3.org/1999/xhtml">&lt;seal&gt;</code> elements. [10.7.3.2. Seals]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
            <group>
        
               <optional>
                  <ref name="summary"/>
               </optional>
        
        
               <oneOrMore>
                  <choice>
                     <ref name="decoNote"/>
                     <ref name="seal"/>
                     <ref name="condition"/>
                  </choice>
               </oneOrMore>
        
            </group>
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="seal">
      <element name="seal">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(seal) contains a description of one seal or similar applied to the object described [10.7.3.2. Seals]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="model.pLike"/>
               <ref name="decoNote"/>
            </choice>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.datable.attributes"/>
         <optional>
            <attribute name="contemporary">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(contemporary) specifies whether or not the seal is contemporary with the item to which it is affixed</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>
         <empty/>
      </element>
   </define>
   <define name="accMat">
      <element name="accMat">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(accompanying material) contains details of any significant additional material which may be closely associated with the manuscript or object being described, such as non-contemporaneous documents or fragments bound in with it at some earlier historical period. [10.7.3.3. Accompanying Material]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="history">
      <element name="history">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(history) groups elements describing the full history of a manuscript, manuscript part, or other object. [10.8. History]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
            <group>
        
               <optional>
                  <ref name="summary"/>
               </optional>
        
        
               <optional>
                  <ref name="origin"/>
               </optional>
        
        
               <zeroOrMore>
                  <ref name="provenance"/>
               </zeroOrMore>
        
        
               <optional>
                  <ref name="acquisition"/>
               </optional>
        
            </group>
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="origin">
      <element name="origin">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(origin) contains any descriptive or other information concerning the origin of a manuscript, manuscript part, or other object. [10.8. History]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.datable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="provenance">
      <element name="provenance">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(provenance) contains any descriptive or other information concerning a single identifiable episode during the history of a manuscript, manuscript part, or other object after its creation but before its acquisition. [10.8. History]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="acquisition">
      <element name="acquisition">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(acquisition) contains any descriptive or other information concerning the process by which a manuscript or manuscript part or other object entered the holding institution. [10.8. History]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="additional">
      <element name="additional">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(additional) groups additional information, combining bibliographic information about a manuscript or other object, or surrogate copies of it, with curatorial or administrative information. [10.9. Additional Information]</a:documentation>
         <group>
      
            <optional>
               <ref name="adminInfo"/>
            </optional>
      
      
            <optional>
               <ref name="surrogates"/>
            </optional>
      
      
            <optional>
               <ref name="listBibl"/>
            </optional>
      
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="adminInfo">
      <element name="adminInfo">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(administrative information) contains information about the present custody and availability of the manuscript or other object, and also about the record description itself. [10.9.1. Administrative Information]</a:documentation>
         <group>
      
            <optional>
               <ref name="recordHist"/>
            </optional>
      
      
            <optional>
               <ref name="availability"/>
            </optional>
      
      
            <optional>
               <ref name="custodialHist"/>
            </optional>
      
      
            <optional>
               <ref name="model.noteLike"/>
            </optional>
        
      
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="recordHist">
      <element name="recordHist">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(recorded history) provides information about the source and revision status of the parent manuscript or object description itself. [10.9.1. Administrative Information]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
            <group>
               <ref name="source"/>
        
               <zeroOrMore>
                  <ref name="change"/>
               </zeroOrMore>
        
            </group>
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="source">
      <element name="source">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(source) describes the original source for the information contained with a manuscript or object description. [10.9.1.1. Record History]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="custodialHist">
      <element name="custodialHist">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(custodial history) contains a description of a manuscript or other object's custodial history, either as running prose or as a series of dated custodial events. [10.9.1.2. Availability and Custodial History]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
      
            <oneOrMore>
               <ref name="custEvent"/>
            </oneOrMore>
      
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="custEvent">
      <element name="custEvent">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(custodial event) describes a single event during the custodial history of a manuscript or other object. [10.9.1.2. Availability and Custodial History]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="surrogates">
      <element name="surrogates">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(surrogates) contains information about any representations of the manuscript or other object being described which may exist in the holding institution or elsewhere. [10.9. Additional Information]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="msPart">
      <element name="msPart">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(manuscript part) contains information about an originally distinct manuscript or part of a manuscript, which is now part of a composite manuscript. [10.10. Manuscript Parts]</a:documentation>
         <group>
            <ref name="msIdentifier"/>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="model.pLike"/>
               </oneOrMore>
               <group>
                  <optional>
                     <ref name="msContents"/>
                  </optional>
                  <optional>
                     <ref name="physDesc"/>
                  </optional>
                  <optional>
                     <ref name="history"/>
                  </optional>
                  <optional>
                     <ref name="additional"/>
                  </optional>
                  <zeroOrMore>
                     <ref name="msPart"/>
                  </zeroOrMore>
               </group>
            </choice>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="msFrag">
      <element name="msFrag">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(manuscript fragment) contains information about a fragment described in relation to a prior context, typically as a description of a virtual reconstruction of a manuscript or other object whose fragments were catalogued separately [10.11. Manuscript Fragments]</a:documentation>
         <group>
            <choice>
                <ref name="altIdentifier"/>
                <ref name="msIdentifier"/>
            </choice>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <choice>
                <oneOrMore>
                  <ref name="model.pLike"/>
               </oneOrMore>
                <group>
                    <optional>
                     <ref name="msContents"/>
                  </optional>
                    <optional>
                     <ref name="physDesc"/>
                  </optional>
                    <optional>
                     <ref name="history"/>
                  </optional>
                    <optional>
                     <ref name="additional"/>
                  </optional>
                </group>
            </choice>
        </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.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">&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 dimensional area by means of a series of pairs of numbers, each of which gives the x,y 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]+)?)</param>
               </data>
               <data type="token">
                  <param name="pattern">(-?[0-9]+(\.[0-9]+)?,-?[0-9]+(\.[0-9]+)?)</param>
               </data>
               <data type="token">
                  <param name="pattern">(-?[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]+)?)</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. [11.1. Digital Facsimiles]</a:documentation>
         <group>
            <optional>
               <ref name="front"/>
            </optional>
            <oneOrMore>
               <choice>
                  <ref name="model.graphicLike"/>
                  <ref name="surface"/>
                  <ref name="surfaceGrp"/>
               </choice>
            </oneOrMore>
            <optional>
               <ref name="back"/>
            </optional>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-facsimile-no_facsimile_text_nodes-constraint-rule-15">
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:facsimile//tei:line | tei:facsimile//tei:zone">
               <sch:report test="child::text()[ normalize-space(.) ne '']">
  	  A facsimile 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="sourceDoc">
      <element name="sourceDoc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a transcription or other representation of a single source document potentially forming part of a dossier génétique or collection of sources. [11.1. Digital Facsimiles 11.2.2. Embedded Transcription]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="model.global"/>
               <ref name="model.graphicLike"/>
               <ref name="surface"/>
               <ref name="surfaceGrp"/>
            </choice>
         </oneOrMore>
         <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 coordinate space, optionally grouping one or more graphic representations of that space, zones of interest within that space, and transcriptions of the writing within them. [11.1. Digital Facsimiles 11.2.2. Embedded Transcription]</a:documentation>
         <group>
      
            <zeroOrMore>
               <choice>
                  <ref name="model.global"/>
                  <ref name="model.labelLike"/>
                  <ref name="model.graphicLike"/>
               </choice>
            </zeroOrMore>
      
            <zeroOrMore>
               <group>
        
                  <choice>
                     <ref name="zone"/>
                     <ref name="line"/>
                     <ref name="path"/>
                     <ref name="surface"/>
                     <ref name="surfaceGrp"/>
                  </choice>
        
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </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="surfaceGrp">
      <element name="surfaceGrp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(surface group) defines any kind of useful grouping of written surfaces, for example the recto and verso of a single leaf, which the encoder wishes to treat as a single unit. [11.1. Digital Facsimiles]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="model.global"/>
               <ref name="surface"/>
               <ref name="surfaceGrp"/>
            </choice>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.typed.attributes"/>
         <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 area within a <code xmlns="http://www.w3.org/1999/xhtml">&lt;surface&gt;</code> element. [11.1. Digital Facsimiles 11.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">&lt;surface&gt;</code> element as implied by the dimensions given in the <code xmlns="http://www.w3.org/1999/xhtml">&lt;msDesc&gt;</code> element or by the coordinates of the <code xmlns="http://www.w3.org/1999/xhtml">&lt;surface&gt;</code> itself. The orientation is expressed in arc degrees.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="path">
      <element name="path">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(path) defines any line passing through two or more points within a <code xmlns="http://www.w3.org/1999/xhtml">&lt;surface&gt;</code> element. [11.1. Digital Facsimiles 11.2.2. Embedded Transcription]</a:documentation>
         <empty/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-path-pathmustnotbeclosed-constraint-rule-16">
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:path[@points]">
        
               <sch:let name="firstPair" value="tokenize( normalize-space( @points ), ' ')[1]"/>
               <sch:let name="lastPair"
                        value="tokenize( normalize-space( @points ), ' ')[last()]"/>
               <sch:let name="firstX" value="xs:float( substring-before( $firstPair, ',') )"/>
               <sch:let name="firstY" value="xs:float( substring-after( $firstPair, ',') )"/>
               <sch:let name="lastX" value="xs:float( substring-before( $lastPair, ',') )"/>
               <sch:let name="lastY" value="xs:float( substring-after( $lastPair, ',') )"/>
               <sch:report test="$firstX eq $lastX and $firstY eq $lastY">The first and
          last elements of this path are the same. To specify a closed polygon, use
          the zone element rather than the path element. </sch:report>
            </sch:rule>
         </pattern>
         <ref name="att.global.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.typed.attributes"/>
         <ref name="att.written.attributes"/>
         <optional>
            <attribute name="points">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies a line within the container or bounding box specified by the parent element by means of a series of two or more pairs of numbers, each of which gives the x,y coordinates of a point on the line.</a:documentation>
               <list>
                  <data type="token">
                     <param name="pattern">(-?[0-9]+(\.[0-9]+)?,-?[0-9]+(\.[0-9]+)?)</param>
                  </data>
                  <data type="token">
                     <param name="pattern">(-?[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]+)?)</param>
                     </data>
                  </zeroOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="addSpan">
      <element name="addSpan">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(added span of text) marks the beginning of a longer sequence of text added by an author, scribe, annotator or corrector (see also <code xmlns="http://www.w3.org/1999/xhtml">&lt;add&gt;</code>). [11.3.1.4. Additions and Deletions]</a:documentation>
         <empty/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-addSpan-addSpan-requires-spanTo-constraint-assert-18">
            <rule context="tei:addSpan">
               <sch:assert 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"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="@spanTo">The @spanTo attribute of <sch:name/> is required.</sch:assert>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-addSpan-addSpan-requires-spanTo-fr-constraint-assert-19">
            <rule context="tei:addSpan">
               <sch:assert 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"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="@spanTo">L'attribut spanTo est requis.</sch:assert>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.transcriptional.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.spanning.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="damage">
      <element name="damage">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(damage) contains an area of damage to the text witness. [11.3.3.1. Damage, Illegibility, and Supplied Text]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.damaged.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="damageSpan">
      <element name="damageSpan">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(damaged span of text) marks the beginning of a longer sequence of text which is damaged in some way but still legible. [11.3.3.1. Damage, Illegibility, and Supplied Text]</a:documentation>
         <empty/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-damageSpan-damageSpan-requires-spanTo-constraint-assert-20">
            <rule context="tei:damageSpan">
               <sch:assert 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"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="@spanTo">The @spanTo attribute of <sch:name/> is required.</sch:assert>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-damageSpan-damageSpan-requires-spanTo-fr-constraint-assert-21">
            <rule context="tei:damageSpan">
               <sch:assert 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"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="@spanTo">L'attribut spanTo est requis.</sch:assert>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.damaged.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.spanning.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="delSpan">
      <element name="delSpan">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(deleted span of text) marks the beginning of a longer sequence of text deleted, marked as deleted, or otherwise signaled as superfluous or spurious by an author, scribe, annotator, or corrector. [11.3.1.4. Additions and Deletions]</a:documentation>
         <empty/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-delSpan-delSpan-requires-spanTo-constraint-assert-22">
            <rule context="tei:delSpan">
               <sch:assert 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"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="@spanTo">The @spanTo attribute of <sch:name/> is required.</sch:assert>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-delSpan-delSpan-requires-spanTo-fr-constraint-assert-23">
            <rule context="tei:delSpan">
               <sch:assert 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"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="@spanTo">L'attribut spanTo est requis.</sch:assert>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.transcriptional.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.spanning.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="ex">
      <element name="ex">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(editorial expansion) contains a sequence of letters added by an editor or transcriber when expanding an abbreviation. [11.3.1.2. Abbreviation and Expansion]</a:documentation>
         <ref name="macro.xtext"/>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="fw">
      <element name="fw">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(forme work) contains a running head (e.g. a header, footer), catchword, or similar material appearing on the current page. [11.6. Headers, Footers, and Similar Matter]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.written.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies the material encoded according to some useful typology.
Sample values include: 1] header; 2] footer; 3] pageNum (page number); 4] lineNum (line number); 5] sig (signature); 6] catch (catchword)</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="handNotes">
      <element name="handNotes">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains one or more <code xmlns="http://www.w3.org/1999/xhtml">&lt;handNote&gt;</code> elements documenting the different hands identified within the source texts. [11.3.2.1. Document Hands]</a:documentation>
         <oneOrMore>
            <ref name="handNote"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="handShift">
      <element name="handShift">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(handwriting shift) marks the beginning of a sequence of text written in a new hand, or the beginning of a scribal stint. [11.3.2.1. Document Hands]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.handFeatures.attributes"/>
         <optional>
            <attribute name="new">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates a <code xmlns="http://www.w3.org/1999/xhtml">&lt;handNote&gt;</code> element describing the hand concerned.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="am">
      <element name="am">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(abbreviation marker) contains a sequence of letters or signs present in an abbreviation which are omitted or replaced in the expanded form of the abbreviation. [11.3.1.2. Abbreviation and Expansion]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.pPart.transcriptional"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.editLike.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="restore">
      <element name="restore">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(restore) indicates restoration of text to an earlier state by cancellation of an editorial or authorial marking or instruction. [11.3.1.6. Cancellation of Deletions and Other Markings]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.transcriptional.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <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. [11.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.rendition.attribute.rend"/>
         <ref name="att.global.rendition.attribute.style"/>
         <ref name="att.global.rendition.attribute.rendition"/>
         <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.analytic.attribute.ana"/>
         <ref name="att.global.facs.attribute.facs"/>
         <ref name="att.global.change.attribute.change"/>
         <ref name="att.global.responsibility.attribute.cert"/>
         <ref name="att.global.source.attribute.source"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.dimensions.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="subst">
      <element name="subst">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(substitution) groups one or more deletions (or surplus text) with one or more additions when the combination is to be regarded as a single intervention in the text. [11.3.1.5. Substitutions]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="add"/>
               <ref name="surplus"/>
               <ref name="del"/>
               <ref name="model.milestoneLike"/>
            </choice>
         </oneOrMore>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-subst-substContents1-constraint-assert-24">
            <rule context="tei:subst">
               <assert xmlns:rng="http://relaxng.org/ns/structure/1.0"
                       xmlns:xi="http://www.w3.org/2001/XInclude"
                       test="child::tei:add and (child::tei:del or child::tei:surplus)">
                  <name/> must have at least one child add and at least one child del or surplus</assert>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.transcriptional.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="substJoin">
      <element name="substJoin">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(substitution join) identifies a series of possibly fragmented additions, deletions, or other revisions on a manuscript that combine to make up a single intervention in the text [11.3.1.5. Substitutions]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="model.descLike"/>
               <ref name="model.certLike"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.transcriptional.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="supplied">
      <element name="supplied">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(supplied) signifies text supplied by the transcriber or editor for any reason; for example because the original cannot be read due to physical damage, or because of an obvious omission by the author or scribe. [11.3.3.1. Damage, Illegibility, and Supplied Text]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <optional>
            <attribute name="reason">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">one or more words indicating why the text has had to be supplied, e.g. overbinding, faded-ink, lost-folio, omitted-in-original.</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="surplus">
      <element name="surplus">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(surplus) marks text present in the source which the editor believes to be superfluous or redundant. [11.3.3.1. Damage, Illegibility, and Supplied Text]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <optional>
            <attribute name="reason">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">one or more words indicating why this text is believed to be superfluous, e.g. repeated, interpolated etc.</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="secl">
      <element name="secl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(secluded text) Secluded. Marks text present in the source which the editor believes to be genuine but out of its original place (which is unknown). [11.3.1.7. Text Omitted from or Supplied in the Transcription]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <optional>
            <attribute name="reason">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">one or more words indicating why this text has been secluded, e.g. interpolated etc.</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="line">
      <element name="line">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains the transcription of a topographic line in the source document [11.2.2. Embedded Transcription]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.global"/>
               <ref name="model.gLike"/>
               <ref name="model.linePart"/>
            </choice>
         </zeroOrMore>
         <ref name="att.typed.attributes"/>
         <ref name="att.global.attributes"/>
         <ref name="att.coordinated.attributes"/>
         <ref name="att.written.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="listTranspose">
      <element name="listTranspose">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a list of transpositions, each of which is indicated at some point in a document typically by means of metamarks. [11.3.4.5. Transpositions]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="desc"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="transpose"/>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="metamark">
      <element name="metamark">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains or describes any kind of graphic or written signal within a document the function of which is to determine how it should be read rather than forming part of the actual content of the document. [11.3.4.2. Metamarks]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.spanning.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="function">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes the function (for example status, insertion, deletion, transposition) of the metamark.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="target">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies one or more elements to which the metamark applies.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="mod">
      <element name="mod">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">represents any kind of modification identified within a single document. [11.3.4.1. Generic Modification]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.transcriptional.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.spanning.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="redo">
      <element name="redo">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates one or more cancelled interventions in a document which have subsequently been marked as reaffirmed or repeated. [11.3.4.4. Confirmation, Cancellation, and Reinstatement of Modifications]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.spanning.attributes"/>
         <ref name="att.transcriptional.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <optional>
            <attribute name="target">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to one or more elements representing the interventions which are being reasserted.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="retrace">
      <element name="retrace">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a sequence of writing which has been retraced, for example by over-inking, to clarify or fix it. [11.3.4.3. Fixation and Clarification]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.spanning.attributes"/>
         <ref name="att.transcriptional.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="transpose">
      <element name="transpose">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes a single textual transposition as an ordered list of at least two pointers specifying the order in which the elements indicated should be re-combined. [11.3.4.5. Transpositions]</a:documentation>
         <group>
            <ref name="ptr"/>
            <ref name="ptr"/>
            <zeroOrMore>
               <ref name="ptr"/>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="undo">
      <element name="undo">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates one or more marked-up interventions in a document which have subsequently been marked for cancellation. [11.3.4.4. Confirmation, Cancellation, and Reinstatement of Modifications]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.spanning.attributes"/>
         <ref name="att.transcriptional.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <optional>
            <attribute name="target">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to one or more elements representing the interventions which are to be reverted or undone.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="model.rdgLike">
      <choice>
         <ref name="rdg"/>
      </choice>
   </define>
   <define name="model.rdgPart">
      <choice>
         <ref name="wit"/>
         <ref name="witStart"/>
         <ref name="witEnd"/>
         <ref name="lacunaStart"/>
         <ref name="lacunaEnd"/>
      </choice>
   </define>
   <define name="att.rdgPart.attributes">
      <ref name="att.rdgPart.attribute.wit"/>
   </define>
   <define name="att.rdgPart.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 sigla indicating the witnesses to this reading beginning or ending at this point.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </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. [12.1.1. The Apparatus Entry]</a:documentation>
         <group>
            <optional>
               <ref name="lem"/>
            </optional>
            <zeroOrMore>
               <choice>
                  <ref name="model.rdgLike"/>
                  <ref name="model.noteLike"/>
                  <ref name="witDetail"/>
                  <ref name="wit"/>      
                  <ref name="rdgGrp"/>      
               </choice>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies the 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="listApp">
      <element name="listApp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(list of apparatus entries) contains a list of apparatus entries. [12.2. Linking the Apparatus to the Text]</a:documentation>
         <group>
      
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
       
            <zeroOrMore>
               <ref name="desc"/>
            </zeroOrMore>
            <oneOrMore>
               <choice>
                  <ref name="app"/>
                  <ref name="listApp"/>
               </choice>
            </oneOrMore>
      
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.sortable.attributes"/>
         <ref name="att.declarable.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="lem">
      <element name="lem">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(lemma) contains the lemma, or base text, of a textual variation. [12.1. The Apparatus Entry, Readings, and Witnesses]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.divLike"/>
               <ref name="model.divPart"/>
               <ref name="titlePage"/>
      
      
               <ref name="argument"/>
               <ref name="byline"/>
               <ref name="docAuthor"/>
               <ref name="docDate"/>
               <ref name="docEdition"/>
               <ref name="docImprint"/>
               <ref name="docTitle"/>
               <ref name="epigraph"/>
               <ref name="imprimatur"/>
               <ref name="titlePart"/>
      
               <ref name="epilogue"/>
               <ref name="performance"/>
               <ref name="prologue"/>
               <ref name="set"/>
      
               <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.attributes"/>
         <ref name="att.textCritical.attributes"/>
         <ref name="att.witnessed.attributes"/>
         <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. [12.1. The Apparatus Entry, Readings, and Witnesses]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.divLike"/>
               <ref name="model.divPart"/>
               <ref name="titlePage"/>
      
      
               <ref name="argument"/>
               <ref name="byline"/>
               <ref name="docAuthor"/>
               <ref name="docDate"/>
               <ref name="docEdition"/>
               <ref name="docImprint"/>
               <ref name="docTitle"/>
               <ref name="epigraph"/>
               <ref name="imprimatur"/>
               <ref name="titlePart"/>
      
               <ref name="epilogue"/>
               <ref name="performance"/>
               <ref name="prologue"/>
               <ref name="set"/>
      
               <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.attributes"/>
         <ref name="att.textCritical.attributes"/>
         <ref name="att.witnessed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="rdgGrp">
      <element name="rdgGrp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reading group) within a textual variation, groups two or more readings perceived to have a genetic relationship or other affinity. [12.1. The Apparatus Entry, Readings, and Witnesses]</a:documentation>
         <group>
            <optional>
               <ref name="lem"/>
            </optional>
            <zeroOrMore>
               <choice>
                  <ref name="model.rdgLike"/>
                  <ref name="model.noteLike"/>
                  <ref name="witDetail"/>
                  <ref name="wit"/>      
                  <ref name="rdgGrp"/>      
               </choice>
            </zeroOrMore>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-rdgGrp-only1lem-constraint-assert-25">
            <rule context="tei:rdgGrp">
               <sch:assert xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           xmlns:rng="http://relaxng.org/ns/structure/1.0"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="count(tei:lem) &lt; 2">Only one &lt;lem&gt; element may appear within a &lt;rdgGrp&gt;</sch:assert>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.textCritical.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="witDetail">
      <element name="witDetail">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(witness detail) gives further information about a particular witness, or witnesses, to a particular reading. [12.1. The Apparatus Entry, Readings, and Witnesses]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.phrase"/>
               <ref name="model.global"/>
               <ref name="bibl"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes the type of information given about the witness.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <attribute name="wit">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(witnesses) indicates the sigil or sigla identifying the witness or witnesses to which the detail refers.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="wit">
      <element name="wit">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(wit) contains a list of one or more sigla of witnesses attesting a given reading, in a textual variation. [12.1.4. Witness Information]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.rdgPart.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="listWit">
      <element name="listWit">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(witness list) lists definitions for all the witnesses referred to by a critical apparatus, optionally grouped hierarchically. [12.1. The Apparatus Entry, Readings, and Witnesses]</a:documentation>
         <group>
      
      
            <optional>
               <ref name="model.headLike"/>
            </optional>
            <zeroOrMore>
               <ref name="desc"/>
            </zeroOrMore>     
            <oneOrMore>
               <choice>
                  <ref name="witness"/>
                  <ref name="listWit"/>
               </choice>
            </oneOrMore>
        
      
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.sortable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="witness">
      <element name="witness">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(witness) contains either a description of a single witness referred to within the critical apparatus, or a list of witnesses which is to be referred to by a single sigil. [12.1. The Apparatus Entry, Readings, and Witnesses]</a:documentation>
         <zeroOrMore>
            <choice>
      
               <text/>
               <ref name="model.limitedPhrase"/>
               <ref name="model.inter"/>
               <ref name="note"/>
               <ref name="object"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.sortable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="witStart">
      <element name="witStart">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(fragmented witness start) indicates the beginning, or resumption, of the text of a fragmentary witness. [12.1.5. Fragmentary Witnesses]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.rdgPart.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="witEnd">
      <element name="witEnd">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(fragmented witness end) indicates the end, or suspension, of the text of a fragmentary witness. [12.1.5. Fragmentary Witnesses]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.rdgPart.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="lacunaStart">
      <element name="lacunaStart">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(lacuna start) indicates the beginning of a lacuna in the text of a mostly complete textual witness. [12.1.5. Fragmentary Witnesses]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.rdgPart.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="lacunaEnd">
      <element name="lacunaEnd">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(lacuna end) indicates the end of a lacuna in a mostly complete textual witness. [12.1.5. Fragmentary Witnesses]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.rdgPart.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="variantEncoding">
      <element name="variantEncoding">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(variant encoding) declares the method used to encode text-critical variants. [12.1.1. The Apparatus Entry]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <attribute name="method">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates which method is used to encode the apparatus of variants.</a:documentation>
            <choice>
               <value>location-referenced</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">apparatus uses line numbers or other canonical reference scheme referenced in a base text.</a:documentation>
               <value>double-end-point</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">apparatus indicates the precise locations of the beginning and ending of each lemma relative to a base text.</a:documentation>
               <value>parallel-segmentation</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">alternate readings of a passage are given in parallel in the text; no notion of a base text is necessary.</a:documentation>
            </choice>
         </attribute>
         <attribute name="location">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates whether the apparatus appears within the running text or external to it.</a:documentation>
            <choice>
               <value>internal</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">apparatus appears within the running text.</a:documentation>
               <value>external</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">apparatus appears outside the base text.</a:documentation>
            </choice>
         </attribute>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-variantEncoding-location-variantEncodingLocation-constraint-rule-17">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:variantEncoding">
               <sch:report test="@location eq 'external' and @method eq 'parallel-segmentation'">
              The @location value "external" is inconsistent with the
              parallel-segmentation method of apparatus markup.</sch:report>
            </sch:rule>
         </pattern>
         <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">&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="genName"/>
         <ref name="nameLink"/>
         <ref name="addName"/>
         <ref name="roleName"/>
         <ref name="persPronouns"/>
      </choice>
   </define>
   <define name="model.persNamePart_alternation">
      <choice>
         <ref name="surname"/>
         <ref name="forename"/>
         <ref name="genName"/>
         <ref name="nameLink"/>
         <ref name="addName"/>
         <ref name="roleName"/>
         <ref name="persPronouns"/>
      </choice>
   </define>
   <define name="model.persNamePart_sequence">
      <ref name="surname"/>
      <ref name="forename"/>
      <ref name="genName"/>
      <ref name="nameLink"/>
      <ref name="addName"/>
      <ref name="roleName"/>
      <ref name="persPronouns"/>
   </define>
   <define name="model.persNamePart_sequenceOptional">
      <optional>
         <ref name="surname"/>
      </optional>
      <optional>
         <ref name="forename"/>
      </optional>
      <optional>
         <ref name="genName"/>
      </optional>
      <optional>
         <ref name="nameLink"/>
      </optional>
      <optional>
         <ref name="addName"/>
      </optional>
      <optional>
         <ref name="roleName"/>
      </optional>
      <optional>
         <ref name="persPronouns"/>
      </optional>
   </define>
   <define name="model.persNamePart_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="surname"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="forename"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="genName"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="nameLink"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="addName"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="roleName"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="persPronouns"/>
      </zeroOrMore>
   </define>
   <define name="model.persNamePart_sequenceRepeatable">
      <oneOrMore>
         <ref name="surname"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="forename"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="genName"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="nameLink"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="addName"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="roleName"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="persPronouns"/>
      </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. [13.2.2. Organizational Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.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="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. [13.2.1. Personal Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.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="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. [13.2.1. Personal Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.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. [13.2.1. Personal Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.personal.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="genName">
      <element name="genName">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(generational name component) contains a name component used to distinguish otherwise similar names on the basis of the relative ages or generations of the persons named. [13.2.1. Personal Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.personal.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="nameLink">
      <element name="nameLink">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(name link) contains a connecting phrase or link used within a name but not regarded as part of it, such as van der or of. [13.2.1. Personal Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="addName">
      <element name="addName">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(additional name) contains an additional name component, such as a nickname, epithet, or alias, or any other descriptive phrase used within a personal name. [13.2.1. Personal Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.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. [13.2.1. Personal Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.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. [13.2.3. Place Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.global.attributes"/>
         <ref name="att.personal.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="bloc">
      <element name="bloc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(bloc) contains the name of a geo-political unit consisting of two or more nation states or countries. [13.2.3. Place Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.datable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="country">
      <element name="country">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(country) contains the name of a geo-political unit, such as a nation, country, colony, or commonwealth, larger than or administratively superior to a region and smaller than a bloc. [13.2.3. Place Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.datable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="region">
      <element name="region">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(region) contains the name of an administrative unit such as a state, province, or county, larger than a settlement, but smaller than a country. [13.2.3. Place Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.datable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="settlement">
      <element name="settlement">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(settlement) contains the name of a settlement such as a city, town, or village identified as a single geo-political or administrative unit. [13.2.3. Place Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.datable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="district">
      <element name="district">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(district) contains the name of any kind of subdivision of a settlement, such as a parish, ward, or other administrative or geographic unit. [13.2.3. Place Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.datable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="offset">
      <element name="offset">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(offset) marks that part of a relative temporal or spatial expression which indicates the direction of the offset between the two place names, dates, or times involved in the expression. [13.2.3. Place Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.global.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="geogName">
      <element name="geogName">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(geographical name) identifies a name associated with some geographical feature such as Windrush Valley or Mount Sinai. [13.2.3. Place Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.global.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="geogFeat">
      <element name="geogFeat">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(geographical feature name) contains a common noun identifying some geographical feature contained within a geographic name, such as valley, mount, etc. [13.2.3. Place Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.global.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="affiliation">
      <element name="affiliation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(affiliation) contains an informal description of a person's present or past affiliation with some organization, for example an employer or sponsor. [15.2.2. The Participant Description]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.naming.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.
Sample values include: 1] sponsor; 2] recommend; 3] discredit; 4] pledged</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="age">
      <element name="age">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(age) specifies the age of a person. [13.3.2.1. Personal Characteristics]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <ref name="att.dimensions.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.
Sample values include: 1] western; 2] sui; 3] subjective; 4] objective; 5] inWorld (in world); 6] chronological; 7] biological; 8] psychological; 9] functional</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="value">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a numeric code representing the age or age group</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="birth">
      <element name="birth">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(birth) contains information about a person's birth, such as its date and place. [15.2.2. The Participant Description]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <ref name="att.naming.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.
Sample values include: 1] caesarean (caesarean section); 2] vaginal (vaginal delivery); 3] exNihilo (ex nihilo); 4] incorporated; 5] founded; 6] established</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="climate">
      <element name="climate">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(climate) contains information about the physical climate of a place. [13.3.4.3. States, Traits, and Events]</a:documentation>
         <group>
      
            <zeroOrMore>
               <ref name="precision"/>
            </zeroOrMore>
      
      
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
      
            <choice>
        
          
               <oneOrMore>
                  <ref name="model.pLike"/>
               </oneOrMore>
          
        
        
          
               <oneOrMore>
                  <ref name="model.labelLike"/>
               </oneOrMore>
          
        
            </choice>
      
            <zeroOrMore>
               <choice>
                  <ref name="model.noteLike"/>
                  <ref name="model.biblLike"/>
               </choice>
            </zeroOrMore>
      
      
            <zeroOrMore>
               <ref name="climate"/>
            </zeroOrMore>
      
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="death">
      <element name="death">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(death) contains information about a person's death, such as its date and place. [15.2.2. The Participant Description]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.global.attributes"/>
         <ref name="att.naming.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.
Sample values include: 1] proclaimed; 2] assumed; 3] verified; 4] clinical; 5] brain; 6] natural; 7] unnatural; 8] fragmentation; 9] dissolution</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="education">
      <element name="education">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(education) contains a description of the educational experience of a person. [15.2.2. The Participant Description]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.naming.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.
Sample values include: 1] primary; 2] secondary; 3] undergraduate; 4] graduate; 5] residency; 6] apprenticeship</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="event">
      <element name="event">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(event) contains data relating to any kind of significant event associated with a person, place, or organization. [13.3.1. Basic Principles]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="idno"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="model.pLike"/>
               </oneOrMore>
               <oneOrMore>
                  <ref name="model.labelLike"/>
               </oneOrMore>
            </choice>
            <zeroOrMore>
               <choice>
                  <ref name="model.noteLike"/>
                  <ref name="model.biblLike"/>
                  <ref name="linkGrp"/>
                  <ref name="link"/>
                  <ref name="idno"/>
                  <ref name="ptr"/>
               </choice>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="event"/>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.sortable.attributes"/>
         <ref name="att.locatable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="faith">
      <element name="faith">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(faith) specifies the faith, religion, or belief set of a person. [13.3.2.1. Personal Characteristics]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.canonical.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.
Sample values include: 1] practicing; 2] clandestine; 3] patrilineal; 4] matrilineal; 5] convert</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="floruit">
      <element name="floruit">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(floruit) contains information about a person's period of activity. [13.3.2.1. Personal Characteristics]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <ref name="att.editLike.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="gender">
      <element name="gender">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(gender) specifies the gender identity of a person, persona, or character. [13.3.2.1. Personal Characteristics]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="value">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a coded value for gender identity</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="geo">
      <element name="geo">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(geographical coordinates) contains any expression of a set of geographic coordinates, representing a point, line, or area on the surface of the earth in some notation. [13.3.4.1. Varieties of Location]</a:documentation>
         <text/>
         <ref name="att.global.attributes"/>
         <ref name="att.declaring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="langKnowledge">
      <element name="langKnowledge">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(language knowledge) summarizes the state of a person's linguistic knowledge, either as prose or by a list of <code xmlns="http://www.w3.org/1999/xhtml">&lt;langKnown&gt;</code> elements. [13.3.2.1. Personal Characteristics]</a:documentation>
         <group>        
            <zeroOrMore>
               <ref name="precision"/>
            </zeroOrMore>
            <choice>
	              <ref name="model.pLike"/>
	              <oneOrMore>
                  <ref name="langKnown"/>
               </oneOrMore>
            </choice>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.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.
Sample values include: 1] listening; 2] speaking; 3] reading; 4] writing</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="tags">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies one or more valid language tags for the languages specified</a:documentation>
               <list>
                  <oneOrMore>
                     <choice>
                        <data type="language"/>
                        <choice>
                           <value/>
                           <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                        </choice>
                     </choice>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="langKnown">
      <element name="langKnown">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(language known) summarizes the state of a person's linguistic competence, i.e., knowledge of a single language. [15.2.2. The Participant Description]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <attribute name="tag">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a valid language tag for the language concerned.</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="level">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a code indicating the person's level of knowledge for this language</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="listOrg">
      <element name="listOrg">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(list of organizations) contains a list of elements, each of which provides information about an identifiable organization. [13.2.2. Organizational Names]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="desc"/>
            </zeroOrMore>
            <zeroOrMore>
               <choice>
                  <ref name="relation"/>
                  <ref name="listRelation"/>
               </choice>
            </zeroOrMore>
            <oneOrMore>
               <group>
                  <oneOrMore>
                     <choice>
                        <ref name="org"/>
                        <ref name="listOrg"/>
                     </choice>
                  </oneOrMore>
                  <zeroOrMore>
                     <choice>
                        <ref name="relation"/>
                        <ref name="listRelation"/>
                     </choice>
                  </zeroOrMore>
               </group>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declarable.attributes"/>
         <ref name="att.sortable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="listEvent">
      <element name="listEvent">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(list of events) contains a list of descriptions, each of which provides information about an identifiable event. [13.3.1. Basic Principles]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="desc"/>
            </zeroOrMore>
            <zeroOrMore>
               <choice>
                  <ref name="relation"/>
                  <ref name="listRelation"/>
               </choice>
            </zeroOrMore>
            <oneOrMore>
               <group>
                  <oneOrMore>
                     <ref name="model.eventLike"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <choice>
                        <ref name="relation"/>
                        <ref name="listRelation"/>
                     </choice>
                  </zeroOrMore>
               </group>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declarable.attributes"/>
         <ref name="att.sortable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="listPerson">
      <element name="listPerson">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(list of persons) contains a list of descriptions, each of which provides information about an identifiable person or a group of people, for example the participants in a language interaction, or the people referred to in a historical source. [13.3.2. The Person Element 15.2. Contextual Information 2.4. The Profile Description 15.3.2. Declarable Elements]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="desc"/>
            </zeroOrMore>
            <zeroOrMore>
               <choice>
                  <ref name="relation"/>
                  <ref name="listRelation"/>
               </choice>
            </zeroOrMore>
            <oneOrMore>
               <group>
                  <oneOrMore>
                     <choice>
                        <ref name="model.personLike"/>
                        <ref name="listPerson"/>
                     </choice>
                  </oneOrMore>
                  <zeroOrMore>
                     <choice>
                        <ref name="relation"/>
                        <ref name="listRelation"/>
                     </choice>
                  </zeroOrMore>
               </group>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declarable.attributes"/>
         <ref name="att.sortable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="listPlace">
      <element name="listPlace">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(list of places) contains a list of places, optionally followed by a list of relationships (other than containment) defined amongst them. [2.2.7. The Source Description 13.3.4. Places]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="desc"/>
            </zeroOrMore>
            <zeroOrMore>
               <choice>
                  <ref name="relation"/>
                  <ref name="listRelation"/>
               </choice>
            </zeroOrMore>
            <oneOrMore>
               <group>
                  <oneOrMore>
                     <choice>
                        <ref name="model.placeLike"/>
                        <ref name="listPlace"/>
                     </choice>
                  </oneOrMore>
                  <zeroOrMore>
                     <choice>
                        <ref name="relation"/>
                        <ref name="listRelation"/>
                     </choice>
                  </zeroOrMore>
               </group>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declarable.attributes"/>
         <ref name="att.sortable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="listRelation">
      <element name="listRelation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides information about relationships identified amongst people, places, and organizations, either informally as prose or as formally expressed relation links. [13.3.2.3. Personal Relationships]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="desc"/>
            </zeroOrMore>
            <choice>
               <ref name="model.pLike"/>
               <oneOrMore>
                  <choice>
                     <ref name="relation"/>
                     <ref name="listRelation"/>
                  </choice>
               </oneOrMore>
            </choice>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.sortable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="location">
      <element name="location">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(location) defines the location of a place as a set of geographical coordinates, in terms of other named geo-political entities, or as an address. [13.3.4. Places]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="precision"/>
               <ref name="model.labelLike"/>
               <ref name="model.placeNamePart"/>
               <ref name="model.offsetLike"/>
               <ref name="model.measureLike"/>
               <ref name="model.addressLike"/>
               <ref name="model.noteLike"/>
               <ref name="model.biblLike"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="nationality">
      <element name="nationality">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(nationality) contains an informal description of a person's present or past nationality or citizenship. [15.2.2. The Participant Description]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.naming.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.
Sample values include: 1] birth; 2] naturalised; 3] self-assigned</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="occupation">
      <element name="occupation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(occupation) contains an informal description of a person's trade, profession or occupation. [15.2.2. The Participant Description]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.naming.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.
Sample values include: 1] primary; 2] other; 3] paid; 4] unpaid</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="scheme">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the classification system or taxonomy in use, for example by supplying the identifier of a <code xmlns="http://www.w3.org/1999/xhtml">&lt;taxonomy&gt;</code> element, or pointing to some other resource.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="code">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies an occupation code defined within the classification system or taxonomy defined by the <code xmlns="http://www.w3.org/1999/xhtml">@scheme</code> attribute.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="org">
      <element name="org">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(organization) provides information about an identifiable organization such as a business, a tribe, or any other grouping of people. [13.3.3. Organizational Data]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <choice>
               <zeroOrMore>
                  <ref name="model.pLike"/>
               </zeroOrMore>
               <zeroOrMore>
                  <choice>
                     <ref name="model.labelLike"/>
                     <ref name="model.nameLike"/>
                     <ref name="model.placeLike"/>
                     <ref name="model.orgPart"/>
                     <ref name="model.milestoneLike"/>
                  </choice>
               </zeroOrMore>
            </choice>
            <zeroOrMore>
               <choice>
                  <ref name="model.noteLike"/>
                  <ref name="model.biblLike"/>
                  <ref name="linkGrp"/>
                  <ref name="link"/>
                  <ref name="ptr"/>
               </choice>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="model.personLike"/>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.sortable.attributes"/>
         <optional>
            <attribute name="role">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies a primary role or classification for the organization.</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="person">
      <element name="person">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(person) provides information about an identifiable individual, for example a participant in a language interaction, or a person referred to in a historical source. [13.3.2. The Person Element 15.2.2. The Participant Description]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
      
            <zeroOrMore>
               <choice>
                  <ref name="model.personPart"/>
                  <ref name="model.global"/>
                  <ref name="ptr"/>
               </choice>
            </zeroOrMore>
      
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.sortable.attributes"/>
         <optional>
            <attribute name="role">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies a primary role or classification for the person.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="token">
                        <param name="pattern">[^\p{C}\p{Z}]+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="sex">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the sex of the person.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="token">
                        <param name="pattern">[^\p{C}\p{Z}]+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="gender">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the gender of the person.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="token">
                        <param name="pattern">[^\p{C}\p{Z}]+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="age">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies an age group for the person.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="persona">
      <element name="persona">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides information about one of the personalities identified for a given individual, where an individual has multiple personalities. [13.3.2. The Person Element]</a:documentation>
         <choice>   
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>      
            <zeroOrMore>
               <choice>
                  <ref name="model.personPart"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.sortable.attributes"/>
         <optional>
            <attribute name="role">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies a primary role or classification for the persona.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="token">
                        <param name="pattern">[^\p{C}\p{Z}]+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="sex">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the sex of the persona.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="token">
                        <param name="pattern">[^\p{C}\p{Z}]+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="gender">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the gender of the persona.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="token">
                        <param name="pattern">[^\p{C}\p{Z}]+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="age">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies an age group for the persona.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="personGrp">
      <element name="personGrp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(personal group) describes a group of individuals treated as a single person for analytic purposes. [15.2.2. The Participant Description]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
      
      
            <zeroOrMore>
               <choice>
                  <ref name="model.personPart"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
      
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.sortable.attributes"/>
         <optional>
            <attribute name="role">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the role of this group of participants in the interaction.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="sex">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the sex of the participant group.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="token">
                        <param name="pattern">[^\p{C}\p{Z}]+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="gender">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the gender of the participant group.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="token">
                        <param name="pattern">[^\p{C}\p{Z}]+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="age">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the age group of the participants.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="size">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes informally the size or approximate size of the group for example by means of a number and an indication of accuracy e.g. approx 200.</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="persPronouns">
      <element name="persPronouns">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(personal pronouns) indicates the personal pronouns used, or assumed to be used, by the individual being described. [13.3.2.1. Personal Characteristics]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="evidence">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(evidence) indicates support for the listed personal pronouns.
Suggested values include: 1] conjecture (conjecture); 2] selfIdentification (self identification); 3] trustedThirdParty (trusted third party)</a:documentation>
               <choice>
                  <value>conjecture</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(conjecture) The given value was selected based on assumptions by someone besides the person to whom this pronoun applies. As a result, the value may be erroneous.</a:documentation>
                  <value>selfIdentification</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(self identification) The given value has been explicitly stated or confirmed by the person to whom this pronoun applies.</a:documentation>
                  <value>trustedThirdParty</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(trusted third party) The given value has been supplied by another individual trusted by the encoder to know the preferences of the person to whom this pronoun applies.</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">(value) supplies a regularized value for personal pronouns.
Sample values include: 1] e (e); 2] he (he); 3] she (she); 4] they (they)</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="place">
      <element name="place">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(place) contains data about a geographic location [13.3.4. Places]</a:documentation>
         <group>
      
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
      
            <choice>
        
          
               <zeroOrMore>
                  <ref name="model.pLike"/>
               </zeroOrMore>
          
        
        
               <zeroOrMore>
                  <choice>
                     <ref name="model.labelLike"/>
                     <ref name="model.placeStateLike"/>
                     <ref name="model.eventLike"/>
                     <ref name="name"/>
                  </choice>
               </zeroOrMore>
        
            </choice>
      
            <zeroOrMore>
               <choice>
                  <ref name="model.noteLike"/>
                  <ref name="model.biblLike"/>
                  <ref name="idno"/>
                  <ref name="ptr"/>
                  <ref name="linkGrp"/>
                  <ref name="link"/>
               </choice>
            </zeroOrMore>
      
      
            <zeroOrMore>
               <choice>
                  <ref name="model.placeLike"/>
                  <ref name="listPlace"/>
               </choice>
            </zeroOrMore>
      
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.sortable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="population">
      <element name="population">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(population) contains information about the population of a place. [13.3.4.3. States, Traits, and Events]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="precision"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <optional>
               <group>
                  <choice>
                     <oneOrMore>
                        <ref name="model.pLike"/>
                     </oneOrMore>
                     <oneOrMore>
                        <ref name="model.labelLike"/>
                     </oneOrMore>
                  </choice>
                  <zeroOrMore>
                     <choice>
                        <ref name="model.noteLike"/>
                        <ref name="model.biblLike"/>
                     </choice>
                  </zeroOrMore>
               </group>
            </optional>
            <zeroOrMore>
               <ref name="population"/>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="relation">
      <element name="relation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(relationship) describes any kind of relationship or linkage amongst a specified group of places, events, persons, objects or other items. [13.3.2.3. Personal Relationships]</a:documentation>
         <optional>
            <ref name="desc"/>
         </optional>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-relation-reforkeyorname-constraint-assert-26">
            <rule context="tei:relation">
               <assert xmlns:rng="http://relaxng.org/ns/structure/1.0"
                       xmlns:xi="http://www.w3.org/2001/XInclude"
                       test="@ref or @key or @name">One of the attributes  'name', 'ref' or 'key' must be supplied</assert>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-relation-activemutual-constraint-report-29">
            <rule context="tei:relation">
               <report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                       xmlns:xi="http://www.w3.org/2001/XInclude"
                       test="@active and @mutual">Only one of the attributes @active and @mutual may be supplied</report>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-relation-activepassive-constraint-report-30">
            <rule context="tei:relation">
               <report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                       xmlns:xi="http://www.w3.org/2001/XInclude"
                       test="@passive and not(@active)">the attribute 'passive' may be supplied only if the attribute 'active' is supplied</report>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.canonical.attributes"/>
         <ref name="att.sortable.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="name">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a name for the kind of relationship of which this is an instance.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <choice>
            <optional>
               <attribute name="active">
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the active participants in a non-mutual relationship, or all the participants in a mutual one.</a:documentation>
                  <list>
                     <oneOrMore>
                        <data type="anyURI">
                           <param name="pattern">\S+</param>
                        </data>
                     </oneOrMore>
                  </list>
               </attribute>
            </optional>
            <optional>
               <attribute name="mutual">
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a list of participants amongst all of whom the relationship holds equally.</a:documentation>
                  <list>
                     <oneOrMore>
                        <data type="anyURI">
                           <param name="pattern">\S+</param>
                        </data>
                     </oneOrMore>
                  </list>
               </attribute>
            </optional>
         </choice>
         <optional>
            <attribute name="passive">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the passive participants in a non-mutual relationship.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="residence">
      <element name="residence">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(residence) describes a person's present or past places of residence. [15.2.2. The Participant Description]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.naming.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.
Sample values include: 1] primary; 2] secondary; 3] temporary; 4] permanent</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="sex">
      <element name="sex">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(sex) specifies the sex of an organism. [13.3.2.1. Personal Characteristics]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="value">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a coded value for sex</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="socecStatus">
      <element name="socecStatus">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(socio-economic status) contains an informal description of a person's perceived social or economic status. [15.2.2. The Participant Description]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.naming.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.
Sample values include: 1] atBirth; 2] atDeath; 3] dependent; 4] inherited; 5] independent</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="scheme">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the classification system or taxonomy in use, for example by pointing to a locally-defined <code xmlns="http://www.w3.org/1999/xhtml">&lt;taxonomy&gt;</code> element or by supplying a URI for an externally-defined system.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="code">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies a status code defined within the classification system or taxonomy defined by the <code xmlns="http://www.w3.org/1999/xhtml">@scheme</code> attribute.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="state">
      <element name="state">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(state) contains a description of some status or quality attributed to a person, place, or organization often at some specific time or for a specific date range. [13.3.1. Basic Principles 13.3.2.1. Personal Characteristics]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="precision"/>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="state"/>
               </oneOrMore>
               <group>
                  <zeroOrMore>
                     <ref name="model.headLike"/>
                  </zeroOrMore>
                  <oneOrMore>
                     <ref name="model.pLike"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <choice>
                        <ref name="model.noteLike"/>
                        <ref name="model.biblLike"/>
                     </choice>
                  </zeroOrMore>
               </group>
               <zeroOrMore>
                  <choice>
                     <ref name="model.labelLike"/>
                     <ref name="model.noteLike"/>
                     <ref name="model.biblLike"/>
                  </choice>
               </zeroOrMore>
            </choice>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="terrain">
      <element name="terrain">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(terrain) contains information about the physical terrain of a place. [13.3.4.3. States, Traits, and Events]</a:documentation>
         <group>
      
            <zeroOrMore>
               <ref name="precision"/>
            </zeroOrMore>
      
      
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
      
            <choice>
        
          
               <oneOrMore>
                  <ref name="model.pLike"/>
               </oneOrMore>
          
        
        
          
               <oneOrMore>
                  <ref name="model.labelLike"/>
               </oneOrMore>
          
        
            </choice>
      
            <zeroOrMore>
               <choice>
                  <ref name="model.noteLike"/>
                  <ref name="model.biblLike"/>
               </choice>
            </zeroOrMore>
      
      
            <zeroOrMore>
               <ref name="terrain"/>
            </zeroOrMore>
      
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="trait">
      <element name="trait">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(trait) contains a description of some status or quality attributed to a person, place, or organization typically, but not necessarily, independent of the volition or action of the holder and usually not at some specific time or for a specific date range. [13.3.1. Basic Principles 13.3.2.1. Personal Characteristics]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="precision"/>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="trait"/>
               </oneOrMore>
               <group>
                  <zeroOrMore>
                     <ref name="model.headLike"/>
                  </zeroOrMore>
                  <oneOrMore>
                     <ref name="model.pLike"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <choice>
                        <ref name="model.noteLike"/>
                        <ref name="model.biblLike"/>
                     </choice>
                  </zeroOrMore>
               </group>
               <zeroOrMore>
                  <choice>
                     <ref name="model.labelLike"/>
                     <ref name="model.noteLike"/>
                     <ref name="model.biblLike"/>
                  </choice>
               </zeroOrMore>
            </choice>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.naming.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.dimensions.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="objectName">
      <element name="objectName">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(name of an object) contains a proper noun or noun phrase used to refer to an object. [13.2.4. Object Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.datable.attributes"/>
         <ref name="att.editLike.attributes"/>
         <ref name="att.global.attributes"/>
         <ref name="att.personal.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="object">
      <element name="object">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a description of a single identifiable physical object. [13.3.5. Objects]</a:documentation>
         <group>
            <oneOrMore>
               <ref name="objectIdentifier"/>
            </oneOrMore>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <choice>
               <zeroOrMore>
                  <ref name="model.pLike"/>
               </zeroOrMore>
               <group>
                  <optional>
                     <ref name="msContents"/>
                  </optional>
                  <optional>
                     <ref name="physDesc"/>
                  </optional>
                  <optional>
                     <ref name="history"/>
                  </optional>
                  <optional>
                     <ref name="additional"/>
                  </optional>
               </group>
            </choice>
            <zeroOrMore>
               <choice>
                  <ref name="model.noteLike"/>
                  <ref name="model.biblLike"/>
                  <ref name="linkGrp"/>
                  <ref name="link"/>
               </choice>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="object"/>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.sortable.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.docStatus.attributes"/>
         <ref name="att.canonical.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="listObject">
      <element name="listObject">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(list of objects) contains a list of descriptions, each of which provides information about an identifiable physical object. [13.3.5. Objects]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="desc"/>
            </zeroOrMore>
            <zeroOrMore>
               <choice>
                  <ref name="relation"/>
                  <ref name="listRelation"/>
               </choice>
            </zeroOrMore>
            <oneOrMore>
               <group>
                  <oneOrMore>
                     <ref name="model.objectLike"/>
                  </oneOrMore>
                  <zeroOrMore>
                     <choice>
                        <ref name="relation"/>
                        <ref name="listRelation"/>
                     </choice>
                  </zeroOrMore>
               </group>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declarable.attributes"/>
         <ref name="att.sortable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="objectIdentifier">
      <element name="objectIdentifier">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(object identifier) groups one or more identifiers or pieces of locating information concerning a single object. [13.3.5. Objects]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="model.placeNamePart"/>
               <ref name="institution"/>
               <ref name="repository"/>
               <ref name="collection"/>
               <ref name="idno"/>
               <ref name="msName"/>
               <ref name="objectName"/>
               <ref name="altIdentifier"/>
               <ref name="address"/>
            </choice>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="nym">
      <element name="nym">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(canonical name) contains the definition for a canonical name or name component of any kind. [13.3.6. Names and Nyms]</a:documentation>
         <group>

            <zeroOrMore>
               <ref name="idno"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="model.entryPart"/>
            </zeroOrMore>
        
      
      
        
            <zeroOrMore>
               <ref name="model.pLike"/>
            </zeroOrMore>
        
      
      
        
            <zeroOrMore>
               <ref name="nym"/>
            </zeroOrMore>
        
      
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.sortable.attributes"/>
         <optional>
            <attribute name="parts">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to constituent nyms</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="listNym">
      <element name="listNym">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(list of canonical names) contains a list of nyms, that is, standardized names for any thing. [13.3.6. Names and Nyms]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="desc"/>
            </zeroOrMore>
            <zeroOrMore>
               <choice>
                  <ref name="relation"/>
                  <ref name="listRelation"/>
               </choice>
            </zeroOrMore>
            <oneOrMore>
               <group>
                  <oneOrMore>
                     <choice>
                        <ref name="nym"/>
                        <ref name="listNym"/>
                     </choice>
                  </oneOrMore>
                  <zeroOrMore>
                     <choice>
                        <ref name="relation"/>
                        <ref name="listRelation"/>
                     </choice>
                  </zeroOrMore>
               </group>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declarable.attributes"/>
         <ref name="att.sortable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="att.tableDecoration.attributes">
      <ref name="att.tableDecoration.attribute.role"/>
      <ref name="att.tableDecoration.attribute.rows"/>
      <ref name="att.tableDecoration.attribute.cols"/>
   </define>
   <define name="att.tableDecoration.attribute.role">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="role"
                    a:defaultValue="data">
            <a:documentation>(role) indicates the kind of information held in this cell or in each cell of this row.
Suggested values include: 1] label; 2] data</a:documentation>
            <choice>
               <value>label</value>
               <a:documentation>labelling or descriptive information only.</a:documentation>
               <value>data</value>
               <a:documentation>data values.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.tableDecoration.attribute.rows">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="rows"
                    a:defaultValue="1">
            <a:documentation>(rows) indicates the number of rows occupied by this cell or row.</a:documentation>
            <data type="nonNegativeInteger"/>
         </attribute>
      </optional>
   </define>
   <define name="att.tableDecoration.attribute.cols">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="cols"
                    a:defaultValue="1">
            <a:documentation>(columns) indicates the number of columns occupied by this cell or row.</a:documentation>
            <data type="nonNegativeInteger"/>
         </attribute>
      </optional>
   </define>
   <define name="table">
      <element name="table">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(table) contains text displayed in tabular form, in rows and columns. [14.1.1. TEI Tables]</a:documentation>
         <group>
      
            <zeroOrMore>
               <choice>
                  <ref name="model.headLike"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
      
            <choice>
               <oneOrMore>
                  <group>
                     <ref name="row"/>
          
                     <zeroOrMore>
                        <ref name="model.global"/>
                     </zeroOrMore>
          
                  </group>
               </oneOrMore>
               <oneOrMore>
                  <group>
          
                     <ref name="model.graphicLike"/>
          
          
                     <zeroOrMore>
                        <ref name="model.global"/>
                     </zeroOrMore>
          
                  </group>
               </oneOrMore>
            </choice>
            <zeroOrMore>
               <group>
        
                  <ref name="model.divBottom"/>
        
        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
        
               </group>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="rows">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(rows) indicates the number of rows in the table.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <optional>
            <attribute name="cols">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(columns) indicates the number of columns in each row of the table.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="row">
      <element name="row">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(row) contains one row of a table. [14.1.1. TEI Tables]</a:documentation>
         <oneOrMore>
            <ref name="cell"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.tableDecoration.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="cell">
      <element name="cell">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(cell) contains one cell of a table. [14.1.1. TEI Tables]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <ref name="att.tableDecoration.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="formula">
      <element name="formula">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(formula) contains a mathematical or other formula. [14.2. Formulæ and Mathematical Expressions]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.graphicLike"/>
               <ref name="model.hiLike"/>       
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.notated.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="notatedMusic">
      <element name="notatedMusic">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">encodes the presence of music notation in a text [14.3. Notated Music in Written Text]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="model.labelLike"/>
               <ref name="model.ptrLike"/>
               <ref name="graphic"/>
               <ref name="binaryObject"/>
               <ref name="seg"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.placement.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) groups elements representing or containing graphic information such as an illustration, formula, or figure. [14.4. Specific Elements for Graphic Images]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="model.headLike"/>
               <ref name="model.common"/>
               <ref name="figDesc"/>
               <ref name="model.graphicLike"/>
               <ref name="model.global"/>
               <ref name="model.divBottom"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.placement.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.written.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="figDesc">
      <element name="figDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(description of figure) contains a brief prose description of the appearance or content of a graphic figure, for use when documenting an image without displaying it. [14.4. Specific Elements for Graphic Images]</a:documentation>
         <ref name="macro.limitedContent"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="textDesc">
      <element name="textDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(text description) provides a description of a text in terms of its situational parameters. [15.2.1. The Text Description]</a:documentation>
         <group>
            <ref name="channel"/>
            <ref name="constitution"/>
            <ref name="derivation"/>
            <ref name="domain"/>
            <ref name="factuality"/>
            <ref name="interaction"/>
            <ref name="preparedness"/>
      
            <oneOrMore>
               <ref name="purpose"/>
            </oneOrMore>
      
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="particDesc">
      <element name="particDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(participation description) describes the identifiable speakers, voices, or other participants in any kind of text or other persons named or otherwise referred to in a text, edition, or metadata. [15.2. Contextual Information]</a:documentation>
         <choice>
            
                <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
            
            
                <oneOrMore>
               <choice>
                    <ref name="model.personLike"/>
                    <ref name="listPerson"/>
                    <ref name="listOrg"/>
                </choice>
            </oneOrMore>
            
        </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="settingDesc">
      <element name="settingDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(setting description) describes the setting or settings within which a language interaction takes place, or other places otherwise referred to in a text, edition, or metadata. [15.2. Contextual Information 2.4. The Profile Description]</a:documentation>
         <choice>
            
                <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
            
            
                <oneOrMore>
               <choice>
                    <ref name="setting"/>
                    <ref name="model.placeLike"/>
                    <ref name="listPlace"/>
                </choice>
            </oneOrMore>
            
        </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.declarable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="channel">
      <element name="channel">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(primary channel) describes the medium or channel by which a text is delivered or experienced. For a written text, this might be print, manuscript, email, etc.; for a spoken one, radio, telephone, face-to-face, etc. [15.2.1. The Text Description]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="mode"
                       a:defaultValue="x">
               <a:documentation>specifies the mode of this channel with respect to speech and writing.</a:documentation>
               <choice>
                  <value>s</value>
                  <a:documentation>(spoken) </a:documentation>
                  <value>w</value>
                  <a:documentation>(written) </a:documentation>
                  <value>sw</value>
                  <a:documentation>(spoken to be written) e.g. dictation</a:documentation>
                  <value>ws</value>
                  <a:documentation>(written to be spoken) e.g. a script</a:documentation>
                  <value>m</value>
                  <a:documentation>(mixed) </a:documentation>
                  <value>x</value>
                  <a:documentation>(unknown or inapplicable) </a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="constitution">
      <element name="constitution">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(constitution) describes the internal composition of a text or text sample, for example as fragmentary, complete, etc. [15.2.1. The Text Description]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="type"
                       a:defaultValue="single">
               <a:documentation>specifies how the text was constituted.</a:documentation>
               <choice>
                  <value>single</value>
                  <a:documentation>a single complete text</a:documentation>
                  <value>composite</value>
                  <a:documentation>a text made by combining several smaller items, each individually complete</a:documentation>
                  <value>frags</value>
                  <a:documentation>(fragments) a text made by combining several smaller, not necessarily complete, items</a:documentation>
                  <value>unknown</value>
                  <a:documentation>composition unknown or unspecified</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="derivation">
      <element name="derivation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(derivation) describes the nature and extent of originality of this text. [15.2.1. The Text Description]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <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">categorizes the derivation of the text.
Sample values include: 1] original; 2] revision; 3] translation; 4] abridgment; 5] plagiarism; 6] traditional</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="domain">
      <element name="domain">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(domain of use) describes the most important social context in which the text was realized or for which it is intended, for example private vs. public, education, religion, etc. [15.2.1. The Text Description]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <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">categorizes the domain of use.
Sample values include: 1] art; 2] domestic; 3] religious; 4] business; 5] education; 6] govt (government); 7] public</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="factuality">
      <element name="factuality">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(factuality) describes the extent to which the text may be regarded as imaginative or non-imaginative, that is, as describing a fictional or a non-fictional world. [15.2.1. The Text Description]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <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">categorizes the factuality of the text.</a:documentation>
               <choice>
                  <value>fiction</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the text is to be regarded as entirely imaginative</a:documentation>
                  <value>fact</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the text is to be regarded as entirely informative or factual</a:documentation>
                  <value>mixed</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the text contains a mixture of fact and fiction</a:documentation>
                  <value>inapplicable</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the fiction/fact distinction is not regarded as helpful or appropriate to this text</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="interaction">
      <element name="interaction">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(interaction) describes the extent, cardinality and nature of any interaction among those producing and experiencing the text, for example in the form of response or interjection, commentary, etc. [15.2.1. The Text Description]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the degree of interaction between active and passive participants in the text.</a:documentation>
               <choice>
                  <value>none</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">no interaction of any kind, e.g. a monologue</a:documentation>
                  <value>partial</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">some degree of interaction, e.g. a monologue with set responses</a:documentation>
                  <value>complete</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">complete interaction, e.g. a face to face conversation</a:documentation>
                  <value>inapplicable</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">this parameter is inappropriate or inapplicable in this case</a:documentation>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="active">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the number of active participants (or addressors) producing parts of the text.
Suggested values include: 1] singular; 2] plural; 3] corporate; 4] unknown</a:documentation>
               <choice>
                  <value>singular</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a single addressor</a:documentation>
                  <value>plural</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">many addressors</a:documentation>
                  <value>corporate</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a corporate addressor</a:documentation>
                  <value>unknown</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">number of addressors unknown or unspecifiable</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="passive">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the number of passive participants (or addressees) to whom a text is directed or in whose presence it is created or performed.
Suggested values include: 1] self; 2] single; 3] many; 4] group; 5] world</a:documentation>
               <choice>
                  <value>self</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">text is addressed to the originator e.g. a diary</a:documentation>
                  <value>single</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">text is addressed to one other person e.g. a personal letter</a:documentation>
                  <value>many</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">text is addressed to a countable number of others e.g. a conversation in which all participants are identified</a:documentation>
                  <value>group</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">text is addressed to an undefined but fixed number of participants e.g. a lecture</a:documentation>
                  <value>world</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">text is addressed to an undefined and indeterminately large number e.g. a published book</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="preparedness">
      <element name="preparedness">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(preparedness) describes the extent to which a text may be regarded as prepared or spontaneous. [15.2.1. The Text Description]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <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">a keyword characterizing the type of preparedness.
Sample values include: 1] none; 2] scripted; 3] formulaic; 4] revised</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="purpose">
      <element name="purpose">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes a single purpose or communicative function of the text. [15.2.1. The Text Description]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies a particular kind of purpose.
Suggested values include: 1] persuade; 2] express; 3] inform; 4] entertain</a:documentation>
               <choice>
                  <value>persuade</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">didactic, advertising, propaganda, etc.</a:documentation>
                  <value>express</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">self expression, confessional, etc.</a:documentation>
                  <value>inform</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">convey information, educate, etc.</a:documentation>
                  <value>entertain</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">amuse, entertain, etc.</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="degree">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the extent to which this purpose predominates.</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>
         <empty/>
      </element>
   </define>
   <define name="setting">
      <element name="setting">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes one particular setting in which a language interaction takes place. [15.2.3. The Setting Description]</a:documentation>
         <choice>
            <oneOrMore>
               <ref name="model.pLike"/>
            </oneOrMore>
            <zeroOrMore>
               <choice>
                  <ref name="model.nameLike.agent"/>
                  <ref name="model.dateLike"/>
                  <ref name="model.settingPart"/>
               </choice>
            </zeroOrMore>
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.ascribed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="locale">
      <element name="locale">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a brief informal description of the kind of place concerned, for example: a room, a restaurant, a park bench, etc. [15.2.3. The Setting Description]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="activity">
      <element name="activity">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(activity) contains a brief informal description of what a participant in a language interaction is doing other than speaking, if anything. [15.2.3. The Setting Description]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <ref name="att.global.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">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="link">
      <element name="link">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(link) defines an association or hypertextual link among elements or passages, of some type not more precisely specifiable by other elements. [16.1. Links]</a:documentation>
         <empty/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-link-linkTargets3-constraint-assert-27">
            <rule context="tei:link">
               <sch:assert 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"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="contains(normalize-space(@target),' ')">You must supply at least two values for @target or  on <sch:name/>
               </sch:assert>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="linkGrp">
      <element name="linkGrp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(link group) defines a collection of associations or hypertextual links. [16.1. Links]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.descLike"/>
            </zeroOrMore>
            <oneOrMore>
               <choice>
                  <ref name="link"/>
                  <ref name="ptr"/>
               </choice>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.pointing.group.attributes"/>
         <empty/>
      </element>
   </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. [16.3. Blocks, Segments, and Anchors]</a:documentation>
         <ref name="macro.abContent"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-31">
            <rule context="tei:ab">
               <sch:report 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"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="(ancestor::tei:l or ancestor::tei:lg) and not( ancestor::tei:floatingText |parent::tei:figure |parent::tei:note )">
        Abstract model violation: Lines may not contain higher-level divisions such as p or ab, unless ab is a child of figure or note, or is a descendant of floatingText.
      </sch:report>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declaring.attributes"/>
         <ref name="att.fragmentable.attributes"/>
         <ref name="att.written.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="anchor">
      <element name="anchor">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(anchor point) attaches an identifier to a point within a text, whether or not it corresponds with a textual element. [8.4.2. Synchronization and Overlap 16.5. Correspondence and Alignment]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.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. [16.3. Blocks, Segments, and Anchors 6.2. Components of the Verse Line 7.2.5. Speech Contents]</a:documentation>
         <ref name="macro.paraContent"/>
         <ref name="att.global.attributes"/>
         <ref name="att.segLike.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.written.attributes"/>
         <ref name="att.notated.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="when">
      <element name="when">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates a point in time either relative to other elements in the same timeline tag, or absolutely. [16.4.2. Placing Synchronous Events in Time]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="absolute">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies an absolute value for the time.</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>
         <optional>
            <attribute name="unit">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the unit of time in which the <code xmlns="http://www.w3.org/1999/xhtml">@interval</code> value is expressed, if this is not inherited from the parent <code xmlns="http://www.w3.org/1999/xhtml">&lt;timeline&gt;</code>.
Suggested values include: 1] d (days); 2] h (hours); 3] min (minutes); 4] s (seconds); 5] ms (milliseconds)</a:documentation>
               <choice>
                  <value>d</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(days) </a:documentation>
                  <value>h</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(hours) </a:documentation>
                  <value>min</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(minutes) </a:documentation>
                  <value>s</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(seconds) </a:documentation>
                  <value>ms</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(milliseconds) </a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="interval">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies a time interval either as a number or as one of the keywords defined by the datatype teidata.interval</a:documentation>
               <choice>
                  <data type="float"/>
                  <choice>
                     <value>regular</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                     <value>irregular</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>
         <optional>
            <attribute name="since">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the reference point for determining the time of the current <code xmlns="http://www.w3.org/1999/xhtml">&lt;when&gt;</code> element, which is obtained by adding the interval to the time of the reference point.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="timeline">
      <element name="timeline">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(timeline) provides a set of ordered points in time which can be linked to elements of a spoken text to create a temporal alignment of that text. [16.4.2. Placing Synchronous Events in Time]</a:documentation>
         <oneOrMore>
            <ref name="when"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="origin">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">designates the origin of the timeline, i.e. the time at which it begins.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="unit">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the unit of time corresponding to the <code xmlns="http://www.w3.org/1999/xhtml">@interval</code> value of the timeline or of its constituent points in time.
Suggested values include: 1] d (days); 2] h (hours); 3] min (minutes); 4] s (seconds); 5] ms (milliseconds)</a:documentation>
               <choice>
                  <value>d</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(days) </a:documentation>
                  <value>h</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(hours) </a:documentation>
                  <value>min</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(minutes) </a:documentation>
                  <value>s</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(seconds) </a:documentation>
                  <value>ms</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(milliseconds) </a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="interval">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies a time interval either as a positive integral value or using one of a set of predefined codes.</a:documentation>
               <choice>
                  <data type="float"/>
                  <choice>
                     <value>regular</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                     <value>irregular</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>
         <empty/>
      </element>
   </define>
   <define name="join">
      <element name="join">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(join) identifies a possibly fragmented segment of text, by pointing at the possibly discontiguous elements which compose it. [16.7. Aggregation]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="model.descLike"/>
               <ref name="model.certLike"/>
            </choice>
         </zeroOrMore>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-join-joinTargets3-constraint-assert-28">
            <rule context="tei:join">
               <assert xmlns:rng="http://relaxng.org/ns/structure/1.0"
                       xmlns:xi="http://www.w3.org/2001/XInclude"
                       test="contains(@target,' ')">
You must supply at least two values for @target on <name/>
               </assert>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.pointing.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="result">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the name of an element which this aggregation may be understood to represent.</a:documentation>
               <data type="Name"/>
            </attribute>
         </optional>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="scope"
                       a:defaultValue="root">
               <a:documentation>indicates whether the targets to be joined include the entire element indicated (the entire subtree including its root), or just the children of the target (the branches of the subtree).</a:documentation>
               <choice>
                  <value>root</value>
                  <a:documentation>the rooted subtrees indicated by the <code xmlns="http://www.w3.org/1999/xhtml">@target</code> attribute are joined, each subtree become a child of the virtual element created by the join</a:documentation>
                  <value>branches</value>
                  <a:documentation>the children of the subtrees indicated by the <code xmlns="http://www.w3.org/1999/xhtml">@target</code> attribute become the children of the virtual element (i.e. the roots of the subtrees are discarded)</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="joinGrp">
      <element name="joinGrp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(join group) groups a collection of <code xmlns="http://www.w3.org/1999/xhtml">&lt;join&gt;</code> elements and possibly pointers. [16.7. Aggregation]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="equiv"/>
                  <ref name="gloss"/>
                  <ref name="model.descLike"/>
               </choice>
            </zeroOrMore>
            <oneOrMore>
               <choice>
                  <ref name="join"/>
                  <ref name="ptr"/>
               </choice>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.pointing.group.attributes"/>
         <optional>
            <attribute name="result">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies the default value for the <code xmlns="http://www.w3.org/1999/xhtml">@result</code> on each <code xmlns="http://www.w3.org/1999/xhtml">&lt;join&gt;</code> included within the group.</a:documentation>
               <data type="Name"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="alt">
      <element name="alt">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(alternation) identifies an alternation or a set of choices among elements or passages. [16.8. Alternation]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.pointing.attribute.targetLang"/>
         <ref name="att.pointing.attribute.evaluate"/>
         <ref name="att.typed.attributes"/>
         <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>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
                  <zeroOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </zeroOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="mode">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">states whether the alternations gathered in this collection are exclusive or inclusive.</a:documentation>
               <choice>
                  <value>excl</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(exclusive) indicates that the alternation is exclusive, i.e. that at most one of the alternatives occurs.</a:documentation>
                  <value>incl</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(inclusive) indicates that the alternation is not exclusive, i.e. that one or more of the alternatives occur.</a:documentation>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="weights">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">If <code xmlns="http://www.w3.org/1999/xhtml">@mode</code> is excl, each weight states the probability that the corresponding alternative occurs. If <code xmlns="http://www.w3.org/1999/xhtml">@mode</code> is incl each weight states the probability that the corresponding alternative occurs given that at least one of the other alternatives occurs.</a:documentation>
               <list>
                  <data type="double"/>
                  <data type="double"/>
                  <zeroOrMore>
                     <data type="double"/>
                  </zeroOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="altGrp">
      <element name="altGrp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(alternation group) groups a collection of <code xmlns="http://www.w3.org/1999/xhtml">&lt;alt&gt;</code> elements and possibly pointers. [16.8. Alternation]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.descLike"/>
            </zeroOrMore>
            <zeroOrMore>
               <choice>
                  <ref name="alt"/>
                  <ref name="ptr"/>
               </choice>
            </zeroOrMore>  
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.pointing.group.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="mode"
                       a:defaultValue="excl">
               <a:documentation>states whether the alternations gathered in this collection are exclusive or inclusive.</a:documentation>
               <choice>
                  <value>excl</value>
                  <a:documentation>(exclusive) indicates that the alternation is exclusive, i.e. that at most one of the alternatives occurs.</a:documentation>
                  <value>incl</value>
                  <a:documentation>(inclusive) indicates that the alternation is not exclusive, i.e. that one or more of the alternatives occur.</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="standOff">
      <element name="standOff">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Functions as a container element for linked data, contextual information, and stand-off annotations embedded in a TEI document. [16.10. The standOff Container]</a:documentation>
         <oneOrMore>
            <ref name="model.standOffPart"/>
         </oneOrMore>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-standOff-nested_standOff_should_be_typed-constraint-assert-29">
            <rule context="tei:standOff">
               <sch:assert 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"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="@type or not(ancestor::tei:standOff)">This
      <sch:name/> element must have a @type attribute, since it is
      nested inside a <sch:name/>
               </sch:assert>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.declaring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="listAnnotation">
      <element name="listAnnotation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a list of annotations, typically encoded as <code xmlns="http://www.w3.org/1999/xhtml">&lt;annotation&gt;</code>, <code xmlns="http://www.w3.org/1999/xhtml">&lt;annotationBlock&gt;</code>, or <code xmlns="http://www.w3.org/1999/xhtml">&lt;note&gt;</code>, possibly organized with nested <code xmlns="http://www.w3.org/1999/xhtml">&lt;listAnnotation&gt;</code> elements. [16.10. The standOff Container]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.headLike"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="model.labelLike"/>
            </zeroOrMore>
            <oneOrMore>
               <choice>
                  <ref name="model.annotationLike"/>
                  <ref name="listAnnotation"/>
               </choice>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.notated.attributes"/>
         <ref name="att.declaring.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="annotation">
      <element name="annotation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">represents an annotation following the <a xmlns="http://www.w3.org/1999/xhtml" href="#WADM">Web
      Annotation Data Model</a>. [16.10. The standOff Container]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="respStmt"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="revisionDesc"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="licence"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="model.annotationPart.body"/>
            </zeroOrMore>
         </group>
         <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.rendition.attribute.rend"/>
         <ref name="att.global.rendition.attribute.style"/>
         <ref name="att.global.rendition.attribute.rendition"/>
         <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.analytic.attribute.ana"/>
         <ref name="att.global.facs.attribute.facs"/>
         <ref name="att.global.change.attribute.change"/>
         <ref name="att.global.responsibility.attribute.cert"/>
         <ref name="att.global.responsibility.attribute.resp"/>
         <ref name="att.global.source.attribute.source"/>
         <ref name="att.pointing.attribute.targetLang"/>
         <ref name="att.pointing.attribute.evaluate"/>
         <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>
         <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>
            <attribute name="motivation">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <list>
                  <oneOrMore>
                     <choice>
                        <value>assessing</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">intent is to assess the target resource in some way, rather than simply make a comment about it</a:documentation>
                        <value>bookmarking</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">intent is to create a bookmark to the target or part thereof</a:documentation>
                        <value>classifying</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">intent is to classify the target in some way</a:documentation>
                        <value>commenting</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">intent is to comment about the target</a:documentation>
                        <value>describing</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">intent is to describe the target, rather than (for example) comment on it</a:documentation>
                        <value>editing</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">intent is to request an edit or a change to the target resource</a:documentation>
                        <value>highlighting</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">intent is to highlight the target resource or a segment thereof</a:documentation>
                        <value>identifying</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">intent is to assign an identity to the target</a:documentation>
                        <value>linking</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">intent is to link to a resource related to the target</a:documentation>
                        <value>moderating</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">intent is to assign some value or quality to the target</a:documentation>
                        <value>questioning</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">intent is to ask a question about the target</a:documentation>
                        <value>replying</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">intent is to reply to a previous statement, either an annotation or another resource</a:documentation>
                        <value>tagging</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">intent is to associate a tag with the target</a:documentation>
                     </choice>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="model.fsdDeclPart">
      <choice>
         <ref name="fsDecl"/>
         <ref name="fsdLink"/>
         <ref name="fLib"/>
         <ref name="fvLib"/>
      </choice>
   </define>
   <define name="fsdDecl">
      <element name="fsdDecl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature system declaration) provides a feature system declaration comprising one or more feature structure declarations or feature structure declaration links. [18.11. Feature System Declaration]</a:documentation>
         <oneOrMore>
            <ref name="model.fsdDeclPart"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="fsDecl">
      <element name="fsDecl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature structure declaration) declares one type of feature structure. [18.11. Feature System Declaration]</a:documentation>
         <group>
      
            <optional>
               <ref name="fsDescr"/>
            </optional>
      
      
            <oneOrMore>
               <ref name="fDecl"/>
            </oneOrMore>
      
      
            <optional>
               <ref name="fsConstraints"/>
            </optional>
      
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.datcat.attributes"/>
         <attribute name="type">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a name for the type of feature structure being declared.</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
         <optional>
            <attribute name="baseTypes">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the name of one or more typed feature structures from which this type inherits feature specifications and constraints; if this type includes a feature specification with the same name as that of any of those specified by this attribute, or if more than one specification of the same name is inherited, then the set of possible values is defined by unification. Similarly, the set of constraints applicable is derived by combining those specified explicitly within this element with those implied by the <code xmlns="http://www.w3.org/1999/xhtml">@baseTypes</code> attribute. When no <code xmlns="http://www.w3.org/1999/xhtml">@baseTypes</code> attribute is specified, no feature specification or constraint is inherited.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="Name"/>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="fsDescr">
      <element name="fsDescr">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature system description (in FSD)) describes in prose what is represented by the type of feature structure declared in the enclosing fsDecl. [18.11. Feature System Declaration]</a:documentation>
         <ref name="macro.limitedContent"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="fsdLink">
      <element name="fsdLink">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature structure declaration link) associates the name of a typed feature structure with a feature structure declaration for it. [18.11. Feature System Declaration]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <attribute name="type">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the type of feature structure to be documented; this will be the value of the <code xmlns="http://www.w3.org/1999/xhtml">@type</code> attribute on at least one feature structure.</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
         <attribute name="target">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a pointer to a feature structure declaration (<code xmlns="http://www.w3.org/1999/xhtml">&lt;fsDecl&gt;</code>) element within the current document or elsewhere.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="fDecl">
      <element name="fDecl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature declaration) declares a single feature, specifying its name, organization, range of allowed values, and optionally its default value. [18.11. Feature System Declaration]</a:documentation>
         <group>
      
            <optional>
               <ref name="fDescr"/>
            </optional>
      
            <ref name="vRange"/>
      
            <optional>
               <ref name="vDefault"/>
            </optional>
      
         </group>
         <ref name="att.datcat.attributes"/>
         <ref name="att.global.attributes"/>
         <attribute name="name">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a single word which follows the rules defining a legal XML name (see ), indicating the name of the feature being declared; matches the <code xmlns="http://www.w3.org/1999/xhtml">@name</code> attribute of <code xmlns="http://www.w3.org/1999/xhtml">&lt;f&gt;</code> elements in the text.</a:documentation>
            <data type="Name"/>
         </attribute>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="optional"
                       a:defaultValue="true">
               <a:documentation>indicates whether or not the value of this feature may be present.</a:documentation>
               <data type="boolean"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="fDescr">
      <element name="fDescr">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature description (in FSD)) describes in prose what is represented by the feature being declared and its values. [18.11. Feature System Declaration]</a:documentation>
         <ref name="macro.limitedContent"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="vRange">
      <element name="vRange">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value range) defines the range of allowed values for a feature, in the form of an <code xmlns="http://www.w3.org/1999/xhtml">&lt;fs&gt;</code>, <code xmlns="http://www.w3.org/1999/xhtml">&lt;vAlt&gt;</code>, or primitive value; for the value of an <code xmlns="http://www.w3.org/1999/xhtml">&lt;f&gt;</code> to be valid, it must be subsumed by the specified range; if the <code xmlns="http://www.w3.org/1999/xhtml">&lt;f&gt;</code> contains multiple values (as sanctioned by the <code xmlns="http://www.w3.org/1999/xhtml">@org</code> attribute), then each value must be subsumed by the <code xmlns="http://www.w3.org/1999/xhtml">&lt;vRange&gt;</code>. [18.11. Feature System Declaration]</a:documentation>
         <ref name="model.featureVal"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="vDefault">
      <element name="vDefault">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value default) declares the default value to be supplied when a feature structure does not contain an instance of <code xmlns="http://www.w3.org/1999/xhtml">&lt;f&gt;</code> for this name; if unconditional, it is specified as one (or, depending on the value of the <code xmlns="http://www.w3.org/1999/xhtml">@org</code> attribute of the enclosing <code xmlns="http://www.w3.org/1999/xhtml">&lt;fDecl&gt;</code>) more <code xmlns="http://www.w3.org/1999/xhtml">&lt;fs&gt;</code> elements or primitive values; if conditional, it is specified as one or more <code xmlns="http://www.w3.org/1999/xhtml">&lt;if&gt;</code> elements; if no default is specified, or no condition matches, the value none is assumed. [18.11. Feature System Declaration]</a:documentation>
         <choice>
      
            <oneOrMore>
               <ref name="model.featureVal"/>
            </oneOrMore>
      
      
            <oneOrMore>
               <ref name="if"/>
            </oneOrMore>
      
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="if">
      <element name="if">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">defines a conditional default value for a feature; the condition is specified as a feature structure, and is met if it subsumes the feature structure in the text for which a default value is sought. [18.11. Feature System Declaration]</a:documentation>
         <group>
            <choice>
               <ref name="fs"/>
               <ref name="f"/>
            </choice>
            <ref name="then"/>
      
            <ref name="model.featureVal"/>
      
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="then">
      <element name="then">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">separates the condition from the default in an <code xmlns="http://www.w3.org/1999/xhtml">&lt;if&gt;</code>, or the antecedent and the consequent in a <code xmlns="http://www.w3.org/1999/xhtml">&lt;cond&gt;</code> element. [18.11. Feature System Declaration]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="fsConstraints">
      <element name="fsConstraints">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature-structure constraints) specifies constraints on the content of valid feature structures. [18.11. Feature System Declaration]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="cond"/>
               <ref name="bicond"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="cond">
      <element name="cond">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(conditional feature-structure constraint) defines a conditional feature-structure constraint; the consequent and the antecedent are specified as feature structures or feature-structure collections; the constraint is satisfied if both the antecedent and the consequent subsume a given feature structure, or if the antecedent does not. [18.11. Feature System Declaration]</a:documentation>
         <group>
            <choice>
               <ref name="fs"/>
               <ref name="f"/>
            </choice>
            <ref name="then"/>
            <choice>
               <ref name="fs"/>
               <ref name="f"/>
            </choice>
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="bicond">
      <element name="bicond">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(bi-conditional feature-structure constraint) defines a biconditional feature-structure constraint; both consequent and antecedent are specified as feature structures or groups of feature structures; the constraint is satisfied if both subsume a given feature structure, or if both do not. [18.11. Feature System Declaration]</a:documentation>
         <group>
            <choice>
               <ref name="fs"/>
               <ref name="f"/>
            </choice>
            <ref name="iff"/>
            <choice>
               <ref name="fs"/>
               <ref name="f"/>
            </choice>
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="iff">
      <element name="iff">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(if and only if) separates the condition from the consequence in a <code xmlns="http://www.w3.org/1999/xhtml">&lt;bicond&gt;</code> element. [18.11. Feature System Declaration]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="fs">
      <element name="fs">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature structure) represents a feature structure, that is, a collection of feature-value pairs organized as a structural unit. [18.2. Elementary Feature Structures and the Binary
Feature Value]</a:documentation>
         <zeroOrMore>
            <ref name="f"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.datcat.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the type of the feature structure.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="feats">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(features) references the feature-value specifications making up this feature structure.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="f">
      <element name="f">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature) represents a feature value specification, that is, the association of a name with a value of any of several different types. [18.2. Elementary Feature Structures and the Binary
Feature Value]</a:documentation>
         <choice>
            <text/>
            <ref name="model.featureVal"/>
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.datcat.attributes"/>
         <attribute name="name">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a single word which follows the rules defining a legal XML name (see ), providing a name for the feature.</a:documentation>
            <data type="Name"/>
         </attribute>
         <optional>
            <attribute name="fVal">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature value) references any element which can be used to represent the value of a feature.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="binary">
      <element name="binary">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(binary value) represents the value part of a feature-value specification which can contain either of exactly two possible values. [18.2. Elementary Feature Structures and the Binary
Feature Value]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.datcat.attributes"/>
         <attribute name="value">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a binary value.</a:documentation>
            <data type="boolean"/>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="symbol">
      <element name="symbol">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(symbolic value) represents the value part of a feature-value specification which contains one of a finite list of symbols. [18.3. Other Atomic Feature Values]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.datcat.attributes"/>
         <attribute name="value">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a symbolic value for the feature, one of a finite list that may be specified in a feature declaration.</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="numeric">
      <element name="numeric">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(numeric value) represents the value part of a feature-value specification which contains a numeric value or range. [18.3. Other Atomic Feature Values]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.datcat.attributes"/>
         <attribute name="value">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a lower bound for the numeric value represented, and also (if <code xmlns="http://www.w3.org/1999/xhtml">@max</code> is not supplied) its upper bound.</a:documentation>
            <choice>
               <data type="double"/>
               <data type="token">
                  <param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
               </data>
               <data type="decimal"/>
            </choice>
         </attribute>
         <optional>
            <attribute name="max">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies an upper bound for the numeric value represented.</a:documentation>
               <choice>
                  <data type="double"/>
                  <data type="token">
                     <param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
                  </data>
                  <data type="decimal"/>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="trunc">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies whether the value represented should be truncated to give an integer value.</a:documentation>
               <data type="boolean"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="string">
      <element name="string">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(string value) represents the value part of a feature-value specification which contains a string. [18.3. Other Atomic Feature Values]</a:documentation>
         <ref name="macro.xtext"/>
         <ref name="att.global.attributes"/>
         <ref name="att.datcat.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="vLabel">
      <element name="vLabel">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value label) represents the value part of a feature-value specification which appears at more than one point in a feature structure. [18.6. Re-entrant Feature Structures]</a:documentation>
         <optional>
            <ref name="model.featureVal"/>
         </optional>
         <ref name="att.global.attributes"/>
         <attribute name="name">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a name identifying the sharing point.</a:documentation>
            <data type="token">
               <param name="pattern">[^\p{C}\p{Z}]+</param>
            </data>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="vColl">
      <element name="vColl">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(collection of values) represents the value part of a feature-value specification which contains multiple values organized as a set, bag, or list. [18.7. Collections as Complex Feature Values]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="fs"/>
               <ref name="model.featureVal.single"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="org">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(organization) indicates organization of given value or values as set, bag or list.</a:documentation>
               <choice>
                  <value>set</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the given values are organized as a set.</a:documentation>
                  <value>bag</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the given values are organized as a bag (multiset).</a:documentation>
                  <value>list</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the given values are organized as a list.</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="default">
      <element name="default">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(default feature value) represents the value part of a feature-value specification which contains a defaulted value. [18.9. Default Values]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="vAlt">
      <element name="vAlt">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value alternation) represents the value part of a feature-value specification which contains a set of values, only one of which can be valid. [18.8.1. Alternation]</a:documentation>
         <group>
      
            <ref name="model.featureVal"/>
      
      
            <oneOrMore>
               <ref name="model.featureVal"/>
            </oneOrMore>
      
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="vNot">
      <element name="vNot">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value negation) represents a feature value which is the negation of its content. [18.8.2. Negation]</a:documentation>
         <ref name="model.featureVal"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="vMerge">
      <element name="vMerge">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(merged collection of values) represents a feature value which is the result of merging together the feature values contained by its children, using the organization specified by the <code xmlns="http://www.w3.org/1999/xhtml">@org</code> attribute. [18.8.3. Collection of Values]</a:documentation>
         <oneOrMore>
            <ref name="model.featureVal"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="org">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the organization of the resulting merged values as set, bag or list.</a:documentation>
               <choice>
                  <value>set</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the resulting values are organized as a set.</a:documentation>
                  <value>bag</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the resulting values are organized as a bag (multiset).</a:documentation>
                  <value>list</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the resulting values are organized as a list.</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="fLib">
      <element name="fLib">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature library) assembles a library of <code xmlns="http://www.w3.org/1999/xhtml">&lt;f&gt;</code> (feature) elements. [18.4. Feature Libraries and Feature-Value Libraries]</a:documentation>
         <oneOrMore>
            <ref name="f"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="fvLib">
      <element name="fvLib">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature-value library) assembles a library of reusable feature value elements (including complete feature structures). [18.4. Feature Libraries and Feature-Value Libraries]</a:documentation>
         <zeroOrMore>
            <ref name="model.featureVal"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="graph">
      <element name="graph">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(graph) encodes a graph, which is a collection of nodes, and arcs which connect the nodes. [19.1. Graphs and Digraphs]</a:documentation>
         <group>
            <optional>
               <group>
                  <ref name="label"/>        
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
               </group>
            </optional>
            <choice>
               <group>
                  <oneOrMore>
                     <group>
                        <ref name="node"/>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </group>
                  </oneOrMore>
                  <zeroOrMore>
                     <group>
                        <ref name="arc"/>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </group>
                  </zeroOrMore>
               </group>
               <group>
                  <oneOrMore>
                     <group>
                        <ref name="arc"/>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </group>
                  </oneOrMore>
                  <oneOrMore>
                     <group>
                        <ref name="node"/>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </group>
                  </oneOrMore>
               </group>
            </choice>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes the type of graph.
Suggested values include: 1] undirected; 2] directed; 3] transitionNetwork; 4] transducer</a:documentation>
               <choice>
                  <value>undirected</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">undirected graph</a:documentation>
                  <value>directed</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">directed graph</a:documentation>
                  <value>transitionNetwork</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a directed graph with distinguished initial and final nodes</a:documentation>
                  <value>transducer</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a transition network with up to two labels on each arc</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="order">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">states the order of the graph, i.e., the number of its nodes.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <optional>
            <attribute name="size">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">states the size of the graph, i.e., the number of its arcs.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="node">
      <element name="node">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(node) encodes a node, a possibly labeled point in a graph. [19.1. Graphs and Digraphs]</a:documentation>
         <optional>
            <group>
               <ref name="label"/>
               <optional>
                  <ref name="label"/>
               </optional>
            </group>
         </optional>
         <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">provides a type for a node.
Suggested values include: 1] initial; 2] final</a:documentation>
               <choice>
                  <value>initial</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">initial node in a transition network</a:documentation>
                  <value>final</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">final node in a transition network</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">provides the value of a node, which is a feature structure or other analytic element.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="adjTo">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(adjacent to) gives the identifiers of the nodes which are adjacent to the current node.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="adjFrom">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(adjacent from) gives the identifiers of the nodes which are adjacent from the current node.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="adj">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(adjacent) gives the identifiers of the nodes which are both adjacent to and adjacent from the current node.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="inDegree">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the in degree of the node, the number of nodes which are adjacent from the given node.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <optional>
            <attribute name="outDegree">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the out degree of the node, the number of nodes which are adjacent to the given node.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <optional>
            <attribute name="degree">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the degree of the node, the number of arcs with which the node is incident.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="arc">
      <element name="arc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(arc) encodes an arc, the connection from one node to another in a graph. [19.1. Graphs and Digraphs]</a:documentation>
         <optional>
            <group>
               <ref name="label"/>
      
               <optional>
                  <ref name="label"/>
               </optional>
      
            </group>
         </optional>
         <ref name="att.global.attributes"/>
         <attribute name="from">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the identifier of the node which is adjacent from this arc.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
         <attribute name="to">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the identifier of the node which is adjacent to this arc.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="tree">
      <element name="tree">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(tree) encodes a tree, which is made up of a root, internal nodes, leaves, and arcs from root to leaves. [19.2. Trees]</a:documentation>
         <group>
            <optional>
               <ref name="label"/>
            </optional>
            <group>
               <zeroOrMore>
                  <choice>
                     <ref name="leaf"/>
                     <ref name="iNode"/>
                  </choice>
               </zeroOrMore>
               <ref name="root"/>
               <zeroOrMore>
                  <choice>
                     <ref name="leaf"/>
                     <ref name="iNode"/>
                  </choice>
               </zeroOrMore>
            </group>
         </group>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="arity">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the maximum number of children of the root and internal nodes of the tree.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <attribute name="ord">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(ordered) indicates whether or not the tree is ordered, or if it is partially ordered.</a:documentation>
            <choice>
               <value>true</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that all of the branching nodes of the tree are ordered.</a:documentation>
               <value>partial</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that some of the branching nodes of the tree are ordered and some are unordered.</a:documentation>
               <value>false</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that all of the branching nodes of the tree are unordered.</a:documentation>
            </choice>
         </attribute>
         <optional>
            <attribute name="order">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the order of the tree, i.e., the number of its nodes.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="root">
      <element name="root">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(root node) represents the root node of a tree. [19.2. Trees]</a:documentation>
         <optional>
            <ref name="label"/>
         </optional>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="value">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the root node of the network by pointing to a feature structure or other analytic element.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <attribute name="children">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the elements which are the children of the root node.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
         <optional>
            <attribute name="ord">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(ordered) indicates whether or not the root is ordered.</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>
         <optional>
            <attribute name="outDegree">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the out degree of the root, the number of its children.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="iNode">
      <element name="iNode">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(intermediate (or internal) node) represents an intermediate (or internal) node of a tree. [19.2. Trees]</a:documentation>
         <optional>
            <ref name="label"/>
         </optional>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="value">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates an intermediate node, which is a feature structure or other analytic element.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <attribute name="children">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a list of identifiers of the elements which are the children of the intermediate node.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
         <optional>
            <attribute name="parent">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the identifier of the element which is the parent of this node.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="ord">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(ordered) indicates whether or not the internal node is ordered.</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>
         <optional>
            <attribute name="follow">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the identifier of an element which this node follows.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="outDegree">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the out degree of an intermediate node, the number of its children.</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="leaf">
      <element name="leaf">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(leaf) encodes the leaves (terminal nodes) of a tree. [19.2. Trees]</a:documentation>
         <optional>
            <ref name="label"/>
         </optional>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="value">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a pointer to a feature structure or other analytic element.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="parent">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the identifier of parent of a leaf.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="follow">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides an identifier of an element which this leaf follows.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="eTree">
      <element name="eTree">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(embedding tree) provides an alternative to the <code xmlns="http://www.w3.org/1999/xhtml">&lt;tree&gt;</code> element for representing ordered rooted tree structures. [19.3. Another Tree Notation]</a:documentation>
         <group>
            <optional>
               <ref name="label"/>
            </optional>
            <zeroOrMore>
               <choice>
                  <ref name="eTree"/>
                  <ref name="triangle"/>
                  <ref name="eLeaf"/>
                  <ref name="model.ptrLike"/>
               </choice>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="value">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the value of an embedding tree, which is a feature structure or other analytic element.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="triangle">
      <element name="triangle">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(underspecified embedding tree, so called because of its
  characteristic shape when drawn) provides for an underspecified <code xmlns="http://www.w3.org/1999/xhtml">&lt;eTree&gt;</code>, that is, an <code xmlns="http://www.w3.org/1999/xhtml">&lt;eTree&gt;</code> with information left out. [19.3. Another Tree Notation]</a:documentation>
         <group>
      
            <optional>
               <ref name="label"/>
            </optional>
      
      
            <zeroOrMore>
               <choice>
                  <ref name="eTree"/>
                  <ref name="triangle"/>
                  <ref name="eLeaf"/>
               </choice>
            </zeroOrMore>
      
         </group>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="value">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a value for the triangle, in the form of the identifier of a feature structure or other analytic element.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="eLeaf">
      <element name="eLeaf">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(leaf or terminal node of an embedding tree) provides explicitly for a leaf of an embedding tree, which may also be encoded with the <code xmlns="http://www.w3.org/1999/xhtml">&lt;eTree&gt;</code> element. [19.3. Another Tree Notation]</a:documentation>
         <group>
      
            <optional>
               <ref name="label"/>
            </optional>
      
      
            <optional>
               <ref name="model.ptrLike"/>
            </optional>
      
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <optional>
            <attribute name="value">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the value of an embedding leaf, which is a feature structure or other analytic element.</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="forest">
      <element name="forest">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(forest) provides for groups of rooted trees. [19.3. Another Tree Notation]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="tree"/>
               <ref name="eTree"/>
               <ref name="triangle"/>
            </choice>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="listForest">
      <element name="listForest">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides for lists of forests. [19.3. Another Tree Notation]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="desc"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="forest"/>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the type of the forest group.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="precision">
      <element name="precision">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the numerical accuracy or precision associated with some aspect of the text markup. [21.2. Indications of Precision]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="model.descLike"/>
               <ref name="model.certLike"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.scoping.attributes"/>
         <ref name="att.ranging.attributes"/>
         <ref name="att.datable.attributes"/>
         <optional>
            <attribute name="precision">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes the precision of the element or attribute pointed to by the <code xmlns="http://www.w3.org/1999/xhtml">&lt;precision&gt;</code> element.</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>
         <optional>
            <attribute name="stdDeviation">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a standard deviation associated with the value in question</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="certainty">
      <element name="certainty">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the degree of certainty associated with some aspect of the text markup. [21.1.2. Structured Indications of Uncertainty]</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.rendition.attribute.rend"/>
         <ref name="att.global.rendition.attribute.style"/>
         <ref name="att.global.rendition.attribute.rendition"/>
         <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.analytic.attribute.ana"/>
         <ref name="att.global.facs.attribute.facs"/>
         <ref name="att.global.change.attribute.change"/>
         <ref name="att.global.responsibility.attribute.resp"/>
         <ref name="att.global.source.attribute.source"/>
         <ref name="att.scoping.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <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 object pointed to by the <code xmlns="http://www.w3.org/1999/xhtml">&lt;certainty&gt;</code> element.</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>
         <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; sample categorization of annotations of uncertainty might use following values:
Sample values include: 1] ignorance; 2] incompleteness; 3] credibility; 4] imprecision</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <attribute name="locus">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates more exactly the aspect concerning which certainty is being expressed: specifically, whether the markup is correctly located, whether the correct element or attribute name has been used, or whether the content of the element or attribute is correct, etc.</a:documentation>
            <choice>
               <value>name</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">uncertainty concerns whether the name of the element or attribute used is correctly applied.</a:documentation>
               <value>start</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">uncertainty concerns whether the start of the element is correctly identified.</a:documentation>
               <value>end</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">uncertainty concerns whether the end of the element is correctly identified.</a:documentation>
               <value>location</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">uncertainty concerns both the start and the end of the element.</a:documentation>
               <value>value</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">uncertainty concerns the content (for an element) or the value (for an attribute)</a:documentation>
            </choice>
         </attribute>
         <optional>
            <attribute name="assertedValue">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides an alternative value for the aspect of the markup in question—an alternative generic identifier, transcription, or attribute value, or the identifier of an <code xmlns="http://www.w3.org/1999/xhtml">&lt;anchor&gt;</code> element (to indicate an alternative starting or ending location). If an <code xmlns="http://www.w3.org/1999/xhtml">@assertedValue</code> is given, the confidence level specified by <code xmlns="http://www.w3.org/1999/xhtml">@degree</code> applies to the alternative markup specified by <code xmlns="http://www.w3.org/1999/xhtml">@assertedValue</code>; if none is given, it applies to the markup in the text.</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="given">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates one or more element(s) characterizing the conditions which are assumed in the assignment of a degree of confidence.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S+</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="degree">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the degree of confidence assigned to the aspect of the markup named by the <code xmlns="http://www.w3.org/1999/xhtml">@locus</code> attribute.</a:documentation>
               <data type="double"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="respons">
      <element name="respons">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(responsibility) identifies the individual(s) responsible for some aspect of the content or markup of particular element(s). [21.3. Attribution of Responsibility]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="model.descLike"/>
               <ref name="model.certLike"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.scoping.attributes"/>
         <attribute name="locus">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the specific aspect of the encoding (markup or content) for which responsibility is being assigned.</a:documentation>
            <list>
               <oneOrMore>
                  <choice>
                     <value>name</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">responsibility is being assigned concerning the name of the element or attribute used.</a:documentation>
                     <value>start</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">responsibility is being assigned concerning the start of the element concerned.</a:documentation>
                     <value>end</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">responsibility is being assigned concerning the end of the element concerned.</a:documentation>
                     <value>location</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">responsibility is being assigned concerning the location of the element concerned.</a:documentation>
                     <value>value</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">responsibility is being assigned concerning the content (for an element) or the value (for an attribute)</a:documentation>
                  </choice>
               </oneOrMore>
            </list>
         </attribute>
         <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.predicate.attributes">
      <ref name="att.predicate.attribute.predicate"/>
   </define>
   <define name="att.predicate.attribute.predicate">
      <optional>
         <attribute name="predicate">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the condition under which the element bearing this attribute applies, given as an XPath predicate expression.</a:documentation>
            <text/>
         </attribute>
      </optional>
   </define>
   <define name="att.repeatable.attributes">
      <ref name="att.repeatable.attribute.minOccurs"/>
      <ref name="att.repeatable.attribute.maxOccurs"/>
   </define>
   <define name="att.repeatable.attribute.minOccurs">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="minOccurs"
                    a:defaultValue="1">
            <a:documentation>(minimum number of occurences) indicates the smallest number of times this component may occur.</a:documentation>
            <data type="nonNegativeInteger"/>
         </attribute>
      </optional>
   </define>
   <define name="att.repeatable.attribute.maxOccurs">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="maxOccurs"
                    a:defaultValue="1">
            <a:documentation>(maximum number of occurences) indicates the largest number of times this component may occur.</a:documentation>
            <choice>
               <data type="nonNegativeInteger"/>
               <choice>
                  <value>unbounded</value>
                  <a:documentation/>
               </choice>
            </choice>
         </attribute>
      </optional>
   </define>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_all-att.repeatable-MINandMAXoccurs-constraint-rule-18">
      <sch:rule 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"
                xmlns="http://www.tei-c.org/ns/1.0"
                context="*[ @minOccurs and @maxOccurs ]">
        <sch:let name="min" value="@minOccurs cast as xs:integer"/>
        <sch:let name="max"
                  value="if ( normalize-space( @maxOccurs ) eq 'unbounded') then -1 else @maxOccurs cast as xs:integer"/>
        <sch:assert test="$max eq -1 or $max ge $min">@maxOccurs should be greater than or equal to @minOccurs</sch:assert>
      </sch:rule>
      <sch:rule 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"
                xmlns="http://www.tei-c.org/ns/1.0"
                context="*[ @minOccurs and not( @maxOccurs ) ]">
        <sch:assert test="@minOccurs cast as xs:integer lt 2">When @maxOccurs is not specified, @minOccurs must be 0 or 1</sch:assert>
      </sch:rule>
   </pattern>
   <define name="model.contentPart">
      <choice>
         <ref name="classRef"/>
         <ref name="elementRef"/>
         <ref name="macroRef"/>
         <ref name="sequence"/>
         <ref name="alternate"/>
         <ref name="dataRef"/>
         <ref name="textNode"/>
         <ref name="anyElement"/>
         <ref name="empty"/>
      </choice>
   </define>
   <define name="att.combinable.attributes">
      <ref name="att.deprecated.attributes"/>
      <ref name="att.combinable.attribute.mode"/>
   </define>
   <define name="att.combinable.attribute.mode">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="mode"
                    a:defaultValue="add">
            <a:documentation>specifies the effect of this declaration on its parent object.</a:documentation>
            <choice>
               <value>add</value>
               <a:documentation>this declaration is part of the current definitions.</a:documentation>
               <value>delete</value>
               <a:documentation>the object with the same identifier (and namespace in the case of an element or attribute) as the current one is no longer part of the current definitions</a:documentation>
               <value>change</value>
               <a:documentation>this declaration changes the object of the same identifier (and namespace in the case of an element or attribute) in the current definition</a:documentation>
               <value>replace</value>
               <a:documentation>this declaration replaces the object with the same identifier (and namespace in the case of an element or attribute) in the current definition.</a:documentation>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.identified.attributes">
      <ref name="att.combinable.attributes"/>
      <ref name="att.identified.attribute.ident"/>
      <ref name="att.identified.attribute.predeclare"/>
      <ref name="att.identified.attribute.module"/>
   </define>
   <define name="att.identified.attribute.ident">
      <attribute name="ident">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies the identifier by which this element may be referenced.</a:documentation>
         <data type="Name"/>
      </attribute>
   </define>
   <define name="att.identified.attribute.predeclare">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="predeclare"
                    a:defaultValue="false">
            <a:documentation>says whether this object should be predeclared in the tei infrastructure module.</a:documentation>
            <data type="boolean"/>
         </attribute>
      </optional>
   </define>
   <define name="att.identified.attribute.module">
      <optional>
         <attribute name="module">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a name for the module in which this object is to be declared.</a:documentation>
            <data type="NCName"/>
         </attribute>
      </optional>
   </define>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_all-att.identified-spec-in-module-constraint-rule-20">
      <rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
            xmlns:xi="http://www.w3.org/2001/XInclude"
            context="tei:elementSpec[@module]|tei:classSpec[@module]|tei:macroSpec[@module]">
        <assert test="(not(ancestor::tei:schemaSpec | ancestor::tei:TEI | ancestor::tei:teiCorpus)) or (not(@module) or (not(//tei:moduleSpec) and not(//tei:moduleRef)) or (//tei:moduleSpec[@ident = current()/@module]) or (//tei:moduleRef[@key = current()/@module]))">
        Specification <value-of select="@ident"/>: the value of the module attribute ("<value-of select="@module"/>") 
should correspond to an existing module, via a moduleSpec or
      moduleRef</assert>
      </rule>
   </pattern>
   <define name="att.deprecated.attributes">
      <ref name="att.deprecated.attribute.validUntil"/>
   </define>
   <define name="att.deprecated.attribute.validUntil">
      <optional>
         <attribute name="validUntil">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a date before which the construct being defined will not be removed.</a:documentation>
            <data type="date"/>
         </attribute>
      </optional>
   </define>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_all-att.deprecated-validUntil-deprecation-two-month-warning-constraint-rule-21">
      <sch:rule 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"
                xmlns="http://www.tei-c.org/ns/1.0"
                context="tei:*[@validUntil]">
            <sch:let name="advance_warning_period"
                  value="current-date() + xs:dayTimeDuration('P60D')"/>
            <sch:let name="me_phrase"
                  value="if (@ident) then concat('The ', @ident ) else concat('This ', local-name(.), ' of ', ancestor::tei:*[@ident][1]/@ident )"/>
            <sch:assert test="@validUntil cast as xs:date ge current-date()">
              <sch:value-of select="concat( $me_phrase, ' construct is outdated (as of ', @validUntil, '); ODD processors may ignore it, and its use is no longer supported' )"/>
         </sch:assert>
              <sch:assert role="nonfatal"
                     test="@validUntil cast as xs:date ge $advance_warning_period">
                <sch:value-of select="concat( $me_phrase, ' construct becomes outdated on ', @validUntil )"/>
              </sch:assert>
          </sch:rule>
   </pattern>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_all-att.deprecated-validUntil-deprecation-should-be-explained-constraint-rule-22">
      <sch:rule 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"
                xmlns="http://www.tei-c.org/ns/1.0"
                context="tei:*[@validUntil][ not( self::valDesc | self::valList | self::defaultVal )]">
            <sch:assert test="child::tei:desc[ @type eq 'deprecationInfo']">
              A deprecated construct should include, whenever possible, an explanation, but this <sch:value-of select="name(.)"/> does not have a child &lt;desc type="deprecationInfo"&gt;</sch:assert>
          </sch:rule>
   </pattern>
   <define name="att.namespaceable.attributes">
      <ref name="att.namespaceable.attribute.ns"/>
   </define>
   <define name="att.namespaceable.attribute.ns">
      <optional>
         <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                    name="ns"
                    a:defaultValue="http://www.tei-c.org/ns/1.0">
            <a:documentation>(namespace) specifies the namespace to which this element belongs</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S*</param>
            </data>
         </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. [22. 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="code">
      <element name="code">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains literal code from some formal language such as a programming language. [22.1.1. Phrase Level Terms]</a:documentation>
         <text/>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="lang">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(formal language) a name identifying the formal language in which the code is expressed</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="eg">
      <element name="eg">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(example) contains any kind of illustrative example. [22.5. Element Specifications 22.5.3. Attribute List Specification]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="egXML">
      <element name="egXML" ns="http://www.tei-c.org/ns/Examples">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(example of XML) a single XML fragment demonstrating the use of some XML, such as elements, attributes, or processing instructions, etc., in which the <code xmlns="http://www.w3.org/1999/xhtml">&lt;egXML&gt;</code> element functions as the root element. [22.1.1. Phrase Level Terms]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="anyElement-egXML"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="valid"
                       a:defaultValue="true">
               <a:documentation>indicates the intended validity of the example with respect to a schema.</a:documentation>
               <choice>
                  <value>true</value>
                  <a:documentation>the example is intended to be fully valid, assuming that its root element, or a provided root element, could have been used as a possible root element in the schema concerned.</a:documentation>
                  <value>feasible</value>
                  <a:documentation>the example could be transformed into a valid document by inserting any number of valid attributes and child elements anywhere within it; or it is valid against a version of the schema concerned in which the provision of character data, list, element, or attribute values has been made optional.</a:documentation>
                  <value>false</value>
                  <a:documentation>the example is not intended to be valid, and contains deliberate errors.</a:documentation>
               </choice>
            </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. [22. Documentation Elements 22.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="ident">
      <element name="ident">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(identifier) contains an identifier or name for an object of some kind in a formal language. <code xmlns="http://www.w3.org/1999/xhtml">&lt;ident&gt;</code> is used for tokens such as variable names, class names, type names, function names etc. in formal programming languages. [22.1.1. Phrase Level Terms]</a:documentation>
         <text/>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="tag">
      <element name="tag">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(tag) contains text of a complete start- or end-tag, possibly including attribute specifications, but excluding the opening and closing markup delimiter characters. [22. Documentation Elements]</a:documentation>
         <text/>
         <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">indicates the type of XML tag intended</a:documentation>
               <choice>
                  <value>start</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a start-tag, with delimiters &lt; and &gt; is intended</a:documentation>
                  <value>end</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">an end-tag, with delimiters &lt;/ and &gt; is intended</a:documentation>
                  <value>empty</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">an empty tag, with delimiters &lt; and /&gt; is intended</a:documentation>
                  <value>pi</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a pi (processing instruction), with delimiters &lt;? and ?&gt; is intended</a:documentation>
                  <value>comment</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a comment, with delimiters &lt;!-- and --&gt; is intended</a:documentation>
                  <value>ms</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a marked-section, with delimiters &lt;[CDATA[ and ]]&gt; is intended</a:documentation>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="scheme"
                       a:defaultValue="TEI">
               <a:documentation>supplies the name of the schema in which this tag is defined.
Sample values include: 1] TEI (text encoding initiative); 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. [22. Documentation Elements 22.5.3. Attribute List Specification]</a:documentation>
         <text/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="specList">
      <element name="specList">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(specification list) marks where a list of descriptions is to be inserted into the prose documentation. [22.1.2. Element and Attribute Descriptions]</a:documentation>
         <oneOrMore>
            <ref name="specDesc"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="specDesc">
      <element name="specDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(specification description) indicates that a description of the specified element, class, or macro should be included at this point within a document. [22.1.2. Element and Attribute Descriptions]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <attribute name="key">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(identifier) supplies the identifier of the documentary element or class for which a description is to be obtained.</a:documentation>
            <data type="Name"/>
         </attribute>
         <optional>
            <attribute name="atts">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(attributes) supplies attribute names for which descriptions should additionally be obtained.</a:documentation>
               <list>
                  <zeroOrMore>
                     <data type="Name"/>
                  </zeroOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="classRef">
      <element name="classRef">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to the specification for an attribute or model class which is to be included in a schema [22.6. Class Specifications]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.repeatable.attributes"/>
         <attribute name="key">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the identifier used for the required class within the source indicated.</a:documentation>
            <data type="NCName"/>
         </attribute>
         <optional>
            <attribute name="expand">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates how references to this class within a content model should be interpreted.</a:documentation>
               <choice>
                  <value>alternation</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">any one member of the class may appear</a:documentation>
                  <value>sequence</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a single occurrence of all members of the class may appear in sequence</a:documentation>
                  <value>sequenceOptional</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a single occurrence of one or more members of the class may appear in sequence </a:documentation>
                  <value>sequenceOptionalRepeatable</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">one or more occurrences of one or more members of the class may appear in sequence. </a:documentation>
                  <value>sequenceRepeatable</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">one or more occurrences of all members of the class may appear in sequence</a:documentation>
               </choice>
            </attribute>
         </optional>
         <choice>
            <optional>
               <attribute name="include">
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a list of class members which are to be included in the schema being defined.</a:documentation>
                  <list>
                     <zeroOrMore>
                        <data type="NCName"/>
                     </zeroOrMore>
                  </list>
               </attribute>
            </optional>
            <optional>
               <attribute name="except">
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a list of class members which are to be excluded from the schema being defined.</a:documentation>
                  <list>
                     <zeroOrMore>
                        <data type="NCName"/>
                     </zeroOrMore>
                  </list>
               </attribute>
            </optional>
         </choice>
         <empty/>
      </element>
   </define>
   <define name="elementRef">
      <element name="elementRef">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to the specification for some element which is to be included in a schema [22.2. Modules and Schemas]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.repeatable.attributes"/>
         <attribute name="key">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the identifier used for the required element within the source indicated.</a:documentation>
            <data type="NCName"/>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="macroRef">
      <element name="macroRef">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to the specification for some pattern which is to be included in a schema [22.7. Macro Specifications]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <attribute name="key">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the identifier used for the required pattern within the source indicated.</a:documentation>
            <data type="NCName"/>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="moduleRef">
      <element name="moduleRef">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(module reference) references a module which is to be incorporated into a schema. [22.2. Modules and Schemas]</a:documentation>
         <optional>
            <ref name="content"/>
         </optional>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-moduleRef-modref-constraint-rule-23">
            <rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                  xmlns:xi="http://www.w3.org/2001/XInclude"
                  context="tei:moduleRef">
               <report test="* and @key">
Child elements of <name/> are only allowed when an external module is being loaded
        </report>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="prefix">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies a default prefix which will be prepended to all patterns from the imported module</a:documentation>
               <data type="NCName"/>
            </attribute>
         </optional>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-moduleRef-prefix-not-same-prefix-constraint-rule-24">
            <rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                  xmlns:xi="http://www.w3.org/2001/XInclude"
                  context="tei:moduleRef">
               <report test="//*[ not( generate-id(.) eq generate-id( current() ) ) ]/@prefix = @prefix">The prefix attribute
	    of <name/> should not match that of any other
	    element (it would defeat the purpose)</report>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-moduleRef-prefix-not-except-and-include-constraint-rule-25">
            <rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                  xmlns:xi="http://www.w3.org/2001/XInclude"
                  context="tei:moduleRef">
               <report test="@except and @include">It is an error to supply both the @include and @except attributes</report>
            </rule>
         </pattern>
         <choice>
            <optional>
               <attribute name="include">
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a list of the elements which are to be copied from the specified module into the schema being defined.</a:documentation>
                  <list>
                     <zeroOrMore>
                        <data type="NCName"/>
                     </zeroOrMore>
                  </list>
               </attribute>
            </optional>
            <optional>
               <attribute name="except">
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a list of the elements which are not to be copied from the specified module into the schema being defined.</a:documentation>
                  <list>
                     <zeroOrMore>
                        <data type="NCName"/>
                     </zeroOrMore>
                  </list>
               </attribute>
            </optional>
         </choice>
         <choice>
            <optional>
               <attribute name="key">
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the name of a TEI module</a:documentation>
                  <data type="NCName"/>
               </attribute>
            </optional>
            <optional>
               <attribute name="url">
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(uniform resource locator) refers to a non-TEI module of RELAX NG code by external location</a:documentation>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </attribute>
            </optional>
         </choice>
         <empty/>
      </element>
   </define>
   <define name="moduleSpec">
      <element name="moduleSpec">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(module specification) documents the structure, content, and purpose of a single module, i.e. a named and externally visible group of declarations. [22.2. Modules and Schemas]</a:documentation>
         <group>      
            <zeroOrMore>
               <choice>
                  <ref name="model.glossLike"/>
                  <ref name="idno"/>
                  <ref name="model.descLike"/>
               </choice>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="exemplum"/>
            </zeroOrMore>
            <optional>
               <ref name="remarks"/>
            </optional>
            <zeroOrMore>
               <ref name="listRef"/>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.identified.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="schemaSpec">
      <element name="schemaSpec">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(schema specification) generates a TEI-conformant schema and documentation for it. [2.3. The Encoding Description 22.2. Modules and Schemas 23.5.1. Making a Unified ODD]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.glossLike"/>
                  <ref name="model.descLike"/>
               </choice>
            </zeroOrMore>
            <zeroOrMore>
               <choice>
                  <ref name="model.oddRef"/>
                  <ref name="model.oddDecl"/>
	                 <ref name="listRef"/>
               </choice>
            </zeroOrMore>      
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.identified.attributes"/>
         <ref name="att.namespaceable.attributes"/>
         <ref name="att.docStatus.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="start"
                       a:defaultValue="TEI">
               <a:documentation>specifies entry points to the schema, i.e. which patterns may be used as the root of documents conforming to it.</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="Name"/>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="prefix">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies a default prefix which will be prepended to all patterns relating to TEI elements, unless otherwise stated.</a:documentation>
               <data type="NCName"/>
            </attribute>
         </optional>
         <optional>
            <attribute name="targetLang">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(target language) specifies which language to use when creating the objects in a schema if names for elements or attributes are available in more than one language</a:documentation>
               <choice>
                  <data type="language"/>
                  <choice>
                     <value/>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                  </choice>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="docLang">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(documentation language) specifies which languages to use when creating documentation if the description for an element, attribute, class or macro is available in more than one language</a:documentation>
               <list>
                  <oneOrMore>
                     <choice>
                        <data type="language"/>
                        <choice>
                           <value/>
                           <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                        </choice>
                     </choice>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="defaultExceptions"
                       a:defaultValue="http://www.tei-c.org/ns/1.0 teix:egXML">
               <a:documentation>(default namespace
      exclusions) provides a list of namespaces and/or prefixed element names to be excluded by default from anyName in RELAX NG schemas</a:documentation>
               <list>
                  <oneOrMore>
                     <choice>
                        <data type="anyURI">
                           <param name="pattern">[^/\s]+:\S*</param>
                        </data>
                        <data type="Name">
                           <param name="pattern">.+:.+</param>
                        </data>
                     </choice>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="specGrp">
      <element name="specGrp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(specification group) contains any convenient grouping of specifications for use within the current module. [22.2. Modules and Schemas]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="model.oddDecl"/>
               <ref name="model.oddRef"/>
               <ref name="model.divPart"/>
               <ref name="listRef"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="specGrpRef">
      <element name="specGrpRef">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reference to a specification group) indicates that the declarations contained by the <code xmlns="http://www.w3.org/1999/xhtml">&lt;specGrp&gt;</code> referenced should be inserted at this point. [22.2. Modules and Schemas]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <attribute name="target">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points at the specification group which logically belongs here.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="elementSpec">
      <element name="elementSpec">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(element specification) documents the structure, content, and purpose of a single element type. [22.5. Element Specifications 22. Documentation Elements]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.glossLike"/>
                  <ref name="model.descLike"/>
               </choice>
            </zeroOrMore>
            <optional>
               <ref name="classes"/>
            </optional>
            <optional>
               <ref name="content"/>
            </optional>
            <optional>
               <ref name="valList"/>
            </optional>
            <zeroOrMore>
               <ref name="constraintSpec"/>
            </zeroOrMore>
            <optional>
               <ref name="attList"/>
            </optional>
            <zeroOrMore>
               <choice>
                  <ref name="model"/>
                  <ref name="modelGrp"/>
                  <ref name="modelSequence"/>
               </choice>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="exemplum"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="remarks"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="listRef"/>
            </zeroOrMore>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-elementSpec-child-constraint-based-on-mode-constraint-rule-26">
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:elementSpec[ @mode eq 'delete' ]">
               <sch:report test="child::*">This elementSpec element has a mode= of "delete" even though it has child elements. Change the mode= to "add", "change", or "replace", or remove the child elements.</sch:report>
            </sch:rule>
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:elementSpec[ @mode = ('add','change','replace') ]">
               <sch:assert test="child::* | (@* except (@mode, @ident))">This elementSpec element has a mode= of "<sch:value-of select="@mode"/>", but does not have any child elements or schema-changing attributes. Specify child elements, use validUntil=, predeclare=, ns=, or prefix=, or change the mode= to "delete".</sch:assert>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.identified.attributes"/>
         <ref name="att.namespaceable.attributes"/>
         <optional>
            <attribute name="prefix">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies a default prefix which will be prepended to all patterns relating to the element, unless otherwise stated.</a:documentation>
               <data type="NCName"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="classSpec">
      <element name="classSpec">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(class specification) contains reference information for a TEI element class; that is a group of elements which appear together in content models, or which share some common attribute, or both. [22.3. Specification Elements 22.6. Class Specifications]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.glossLike"/>
                  <ref name="model.descLike"/>
               </choice>
            </zeroOrMore>
            <optional>
               <ref name="classes"/>
            </optional>
            <zeroOrMore>
               <ref name="constraintSpec"/>
            </zeroOrMore>
            <optional>
               <ref name="attList"/>
            </optional>
            <zeroOrMore>
               <ref name="exemplum"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="remarks"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="listRef"/>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.identified.attributes"/>
         <ref name="att.typed.attribute.subtype"/>
         <attribute name="type">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates whether this is a model class or an attribute class</a:documentation>
            <choice>
               <value>model</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(content model) members of this class appear in the same content models</a:documentation>
               <value>atts</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(attributes) members of this class share common attributes</a:documentation>
            </choice>
         </attribute>
         <optional>
            <attribute name="generate">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates which alternation and sequence instantiations of a model class may be referenced. By default, all variations are permitted.</a:documentation>
               <list>
                  <choice>
                     <value>alternation</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class are alternatives</a:documentation>
                     <value>sequence</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class are to be provided in sequence</a:documentation>
                     <value>sequenceOptional</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class may be provided, in sequence, but are optional</a:documentation>
                     <value>sequenceOptionalRepeatable</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class may be provided one or more times, in sequence, but are optional.</a:documentation>
                     <value>sequenceRepeatable</value>
                     <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class may be provided one or more times, in sequence</a:documentation>
                  </choice>
                  <optional>
                     <choice>
                        <value>alternation</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class are alternatives</a:documentation>
                        <value>sequence</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class are to be provided in sequence</a:documentation>
                        <value>sequenceOptional</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class may be provided, in sequence, but are optional</a:documentation>
                        <value>sequenceOptionalRepeatable</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class may be provided one or more times, in sequence, but are optional.</a:documentation>
                        <value>sequenceRepeatable</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class may be provided one or more times, in sequence</a:documentation>
                     </choice>
                  </optional>
                  <optional>
                     <choice>
                        <value>alternation</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class are alternatives</a:documentation>
                        <value>sequence</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class are to be provided in sequence</a:documentation>
                        <value>sequenceOptional</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class may be provided, in sequence, but are optional</a:documentation>
                        <value>sequenceOptionalRepeatable</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class may be provided one or more times, in sequence, but are optional.</a:documentation>
                        <value>sequenceRepeatable</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class may be provided one or more times, in sequence</a:documentation>
                     </choice>
                  </optional>
                  <optional>
                     <choice>
                        <value>alternation</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class are alternatives</a:documentation>
                        <value>sequence</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class are to be provided in sequence</a:documentation>
                        <value>sequenceOptional</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class may be provided, in sequence, but are optional</a:documentation>
                        <value>sequenceOptionalRepeatable</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class may be provided one or more times, in sequence, but are optional.</a:documentation>
                        <value>sequenceRepeatable</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class may be provided one or more times, in sequence</a:documentation>
                     </choice>
                  </optional>
                  <optional>
                     <choice>
                        <value>alternation</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class are alternatives</a:documentation>
                        <value>sequence</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class are to be provided in sequence</a:documentation>
                        <value>sequenceOptional</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class may be provided, in sequence, but are optional</a:documentation>
                        <value>sequenceOptionalRepeatable</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class may be provided one or more times, in sequence, but are optional.</a:documentation>
                        <value>sequenceRepeatable</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">members of the class may be provided one or more times, in sequence</a:documentation>
                     </choice>
                  </optional>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="dataSpec">
      <element name="dataSpec">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(datatype specification) documents a datatype. [22.3. Specification Elements 22.7. Macro Specifications]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.glossLike"/>
                  <ref name="model.descLike"/>
               </choice>
            </zeroOrMore> 
            <optional>
               <choice>
                  <ref name="content"/> 
                  <ref name="valList"/> 
               </choice>
            </optional>
            <zeroOrMore>
               <ref name="constraintSpec"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="exemplum"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="remarks"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="listRef"/>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.identified.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="macroSpec">
      <element name="macroSpec">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(macro specification) documents the function and implementation of a pattern. [22.3. Specification Elements 22.7. Macro Specifications]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.glossLike"/>
                  <ref name="model.descLike"/>
               </choice>
            </zeroOrMore>
            <optional>
               <choice>
                  <ref name="content"/>
                  <ref name="valList"/>
               </choice>
            </optional>
            <zeroOrMore>
               <ref name="constraintSpec"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="exemplum"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="remarks"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="listRef"/>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.identified.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="remarks">
      <element name="remarks">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(remarks) contains any commentary or discussion about the usage of an element, attribute, class, or entity not otherwise documented within the containing element. [22.5. Element Specifications 22.5.3. Attribute List Specification 22.6. Class Specifications 22.7. Macro Specifications]</a:documentation>
         <oneOrMore>
            <ref name="model.pLike"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.combinable.attributes"/>
         <ref name="att.translatable.attributes"/>
         <optional>
            <attribute name="ident">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the remark concerned.</a:documentation>
               <data type="string"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="listRef">
      <element name="listRef">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(list of references) supplies a list of significant references in the current document or elsewhere.</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="desc"/>
            </zeroOrMore>
            <oneOrMore>
               <ref name="model.ptrLike"/>
            </oneOrMore>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-listRef-TagDocsNestinglistRef-constraint-rule-28">
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="( tei:classSpec | tei:dataSpec | tei:elementSpec | tei:macroSpec | tei:moduleSpec | tei:schemaSpec | tei:specGrp )/tei:listRef">
               <sch:report test="tei:listRef">In the context of tagset documentation, the listRef element must not self-nest.</sch:report>
            </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-listRef-TagDocslistRefChildren-constraint-rule-29">
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="( tei:classSpec | tei:dataSpec | tei:elementSpec | tei:macroSpec | tei:moduleSpec | tei:schemaSpec | tei:specGrp )/tei:listRef/tei:ptr | ( tei:classSpec | tei:dataSpec | tei:elementSpec | tei:macroSpec | tei:moduleSpec | tei:schemaSpec | tei:specGrp )/tei:listRef/tei:ref">
               <sch:assert test="@target and not( matches( @target,'\s') )">In the context of tagset documentation, each ptr or ref element inside a listRef must have a target attribute with only 1 pointer as its value.</sch:assert>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="exemplum">
      <element name="exemplum">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(exemplum) groups an example demonstrating the use of an element along with optional paragraphs of commentary. [22.5. Element Specifications]</a:documentation>
         <group>
      
            <zeroOrMore>
               <ref name="model.pLike"/>
            </zeroOrMore>
      
            <choice>
               <ref name="egXML"/>
               <ref name="eg"/>
            </choice>
      
            <zeroOrMore>
               <ref name="model.pLike"/>
            </zeroOrMore>
      
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <ref name="att.translatable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="classes">
      <element name="classes">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(classes) specifies all the classes of which the documented element or class is a member or subclass. [22.5. Element Specifications 22.6. Class Specifications]</a:documentation>
         <zeroOrMore>
            <ref name="memberOf"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="mode"
                       a:defaultValue="replace">
               <a:documentation>specifies the effect of this declaration on its parent module.</a:documentation>
               <choice>
                  <value>change</value>
                  <a:documentation>this declaration changes the declaration of the same name in the current definition</a:documentation>
                  <value>replace</value>
                  <a:documentation>this declaration replaces the declaration of the same name in the current definition</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="memberOf">
      <element name="memberOf">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies class membership of the documented element or class. [22.4.3. Classification of Components]</a:documentation>
         <ref name="macro.xtext"/>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="key">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the identifier for a class of which the documented element or class is a member or subclass</a:documentation>
               <data type="Name"/>
            </attribute>
         </optional>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="mode"
                       a:defaultValue="add">
               <a:documentation>specifies the effect of this declaration on its parent module.</a:documentation>
               <choice>
                  <value>add</value>
                  <a:documentation>this declaration is added to the current definitions</a:documentation>
                  <value>delete</value>
                  <a:documentation>this declaration and all of its children are removed from the current setup</a:documentation>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="max">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies the maximum number of times the element can occur in elements which use this model class in their content model</a:documentation>
               <choice>
                  <data type="double"/>
                  <data type="token">
                     <param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
                  </data>
                  <data type="decimal"/>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="min">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies the minumum number of times the element must occur in elements which use this model class in their content model</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="equiv">
      <element name="equiv">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(equivalent) specifies a component which is considered equivalent to the parent element, either by co-reference, or by external link. [3.4.1. Terms and Glosses 22.4.1. Description of Components]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.internetMedia.attributes"/>
         <ref name="att.predicate.attributes"/>
         <optional>
            <attribute name="name">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a single word which follows the rules defining a legal XML name (see ), naming the underlying concept of which the parent is a representation.</a:documentation>
               <data type="Name"/>
            </attribute>
         </optional>
         <optional>
            <attribute name="uri">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(uniform resource identifier) references the underlying concept of which the parent is a representation by means of some external identifier</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="filter">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">references an external script which contains a method to transform instances of this element to canonical TEI</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S+</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="altIdent">
      <element name="altIdent">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(alternate identifier) supplies the recommended XML name for an element, class, attribute, etc. in some language. [3.4.1. Terms and Glosses 22.4.1. Description of Components]</a:documentation>
         <text/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-altIdent-deprecate_altIdent_in_non-ODD_places-constraint-report-37">
            <rule context="tei:altIdent">
               <sch:report 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"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           role="nonfatal"
                           test="parent::tei:model | parent::tei:modelGrp | parent::tei:modelSequence | parent::tei:paramSpec | parent::tei:schemaSpec">
        Use of &lt;altIdent&gt; as a child of &lt;<sch:value-of select="name(..)"/>&gt; is
        deprecated, and will no longer be valid after 2022-07-14.
      </sch:report>
               <sch:report 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"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           role="nonfatal"
                           test="parent::tei:moduleSpec">
        Use of &lt;altIdent&gt; to declare the FPI of a module is
        deprecated, and will no longer be valid after 2022-07-14;
        please use &lt;idno type="FPI"&gt; instead.
      </sch:report>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-altIdent-altIdent_usually_an_NCName-constraint-rule-30">
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:altIdent[ not( parent::tei:moduleSpec or @type eq 'FPI' ) ]">
               <sch:assert test=". castable as xs:NCName">
          The content of this 'altIdent' element (<sch:value-of select="normalize-space(.)"/>)
          should conform to teidata.xmlName.
        </sch:assert>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="model">
      <element name="model">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes the processing intended for a specified element. [22.5.4.1. The TEI processing model]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.glossLike"/>
                  <ref name="model.descLike"/>
               </choice>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="param"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="outputRendition"/>
            </zeroOrMore>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-model-no_dup_default_models-constraint-rule-31">
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:model[ not( parent::tei:modelSequence ) ][ not( @predicate ) ]">
               <sch:let name="output" value="normalize-space( @output )"/>
               <sch:report test="following-sibling::tei:model [ not( @predicate )] [ normalize-space( @output ) eq $output ]">
          There are 2 (or more) 'model' elements in this '<sch:value-of select="local-name(..)"/>'
          that have no predicate, but are targeted to the same output
          ("<sch:value-of select="( $output, parent::modelGrp/@output, 'all')[1]"/>")</sch:report>
            </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-model-no_dup_models-constraint-rule-32">
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:model[ not( parent::tei:modelSequence ) ][ @predicate ]">
               <sch:let name="predicate" value="normalize-space( @predicate )"/>
               <sch:let name="output" value="normalize-space( @output )"/>
               <sch:report test="following-sibling::tei:model [ normalize-space( @predicate ) eq $predicate ] [ normalize-space( @output ) eq $output ]">
          There are 2 (or more) 'model' elements in this
          '<sch:value-of select="local-name(..)"/>' that have
          the same predicate, and are targeted to the same output
          ("<sch:value-of select="( $output, parent::modelGrp/@output, 'all')[1]"/>")</sch:report>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.predicate.attributes"/>
         <attribute name="behaviour">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">names the process or function which this processing model uses in order to produce output.
Suggested values include: 1] alternate; 2] anchor; 3] block; 4] body; 5] break; 6] cell; 7] cit; 8] document; 9] figure; 10] glyph; 11] graphic; 12] heading; 13] index; 14] inline; 15] link; 16] list; 17] listItem; 18] metadata; 19] note; 20] omit; 21] paragraph; 22] row; 23] section; 24] table; 25] text; 26] title</a:documentation>
            <choice>
               <value>alternate</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">support display of alternative visualisations, for example by displaying the preferred content, by displaying both in parallel, or by toggling between the two.</a:documentation>
               <value>anchor</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">create an identifiable anchor point in the output.</a:documentation>
               <value>block</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">create a block structure</a:documentation>
               <value>body</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">create the body of a document.</a:documentation>
               <value>break</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">create a line, column, or page break according to the value of type</a:documentation>
               <value>cell</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">create a table cell</a:documentation>
               <value>cit</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">show the content, with an indication of the source</a:documentation>
               <value>document</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">start a new output document</a:documentation>
               <value>figure</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">make a figure with the title as caption</a:documentation>
               <value>glyph</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">show a character by looking up reference to a chardesc at the given URI</a:documentation>
               <value>graphic</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">if url is present, uses it to display graphic, else display a placeholder image.</a:documentation>
               <value>heading</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">creates a heading. </a:documentation>
               <value>index</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">generate list according to type.</a:documentation>
               <value>inline</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">creates inline element out of content</a:documentation>
               <value>link</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">create hyperlink</a:documentation>
               <value>list</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">create a list. </a:documentation>
               <value>listItem</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">create a list item.</a:documentation>
               <value>metadata</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">create metadata section</a:documentation>
               <value>note</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">create a note, often out of line, depending on the value of place; could be margin, footnote, endnote, inline</a:documentation>
               <value>omit</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">do nothing, do not process children</a:documentation>
               <value>paragraph</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">create a paragraph out of content.</a:documentation>
               <value>row</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">create a table row</a:documentation>
               <value>section</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">create a new section of the output document</a:documentation>
               <value>table</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">create a table</a:documentation>
               <value>text</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">create literal text</a:documentation>
               <value>title</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">create document title</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </choice>
         </attribute>
         <optional>
            <attribute name="useSourceRendition">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">whether to obey any rendition attribute that is present.</a:documentation>
               <data type="boolean"/>
            </attribute>
         </optional>
         <optional>
            <attribute name="output">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the intended output.
Sample values include: 1] web; 2] print; 3] plain</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="cssClass">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the name of a CSS class which should be associated with this element</a:documentation>
               <list>
                  <oneOrMore>
                     <data type="Name"/>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="modelSequence">
      <element name="modelSequence">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">any sequence of model or <code xmlns="http://www.w3.org/1999/xhtml">&lt;modelSequence&gt;</code> elements which is to be processed as a single set of actions [22.5.4.7. Model sequence]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.glossLike"/>
                  <ref name="model.descLike"/>
               </choice>
            </zeroOrMore>
            <group>
               <ref name="model"/>
               <ref name="model"/>
               <zeroOrMore>
                  <ref name="model"/>
               </zeroOrMore>
            </group>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-modelSequence-no_outputs_nor_predicates_4_my_kids-constraint-report-41">
            <rule context="tei:modelSequence">
               <sch:report 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"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           role="warning"
                           test="tei:model[@output]">The 'model' children
      of a 'modelSequence' element inherit the @output attribute of the
      parent 'modelSequence', and thus should not have their own</sch:report>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="predicate">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the condition under which this model applies given as an XPath Predicate Expression</a:documentation>
               <text/>
            </attribute>
         </optional>
         <optional>
            <attribute name="useSourceRendition">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">whether to obey any rendition attribute that is present</a:documentation>
               <data type="boolean"/>
            </attribute>
         </optional>
         <optional>
            <attribute name="output">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the intended output method
Suggested values include: 1] web; 2] print; 3] plaintext</a:documentation>
               <choice>
                  <value>web</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the output is intended for presentation in a web format</a:documentation>
                  <value>print</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the output is intended for presentation in a print format</a:documentation>
                  <value>plaintext</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the output is intended for presentation in a plain text format</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="modelGrp">
      <element name="modelGrp">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(model group) any grouping of <code xmlns="http://www.w3.org/1999/xhtml">&lt;model&gt;</code> or <code xmlns="http://www.w3.org/1999/xhtml">&lt;modelSequence&gt;</code> elements with a common output method [22.5.4.4. Model Contexts and Outputs]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.glossLike"/>
                  <ref name="model.descLike"/>
               </choice>
            </zeroOrMore>
            <optional>
               <ref name="outputRendition"/>
            </optional>
            <oneOrMore>
               <choice>
                  <ref name="modelSequence"/>
                  <ref name="model"/>
               </choice>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="useSourceRendition">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">whether to obey any rendition attribute which is present</a:documentation>
               <data type="boolean"/>
            </attribute>
         </optional>
         <optional>
            <attribute name="output">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the intended output method
Suggested values include: 1] web; 2] print; 3] plaintext</a:documentation>
               <choice>
                  <value>web</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the output is intended for presentation in a web format</a:documentation>
                  <value>print</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the output is intended for presentation in a print format</a:documentation>
                  <value>plaintext</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the output is intended for presentation in a plain text format</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="outputRendition">
      <element name="outputRendition">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes the rendering or appearance intended for all occurrences of an element in a specified context for a specified type of output.</a:documentation>
         <text/>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="scope">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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>
         <empty/>
      </element>
   </define>
   <define name="paramList">
      <element name="paramList">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">list of parameter specifications</a:documentation>
         <zeroOrMore>
            <ref name="paramSpec"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="paramSpec">
      <element name="paramSpec">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies specification for one parameter of a model behaviour [22.5.4.8. Defining a processing model]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="model.glossLike"/>
               <ref name="model.descLike"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.identified.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="param">
      <element name="param">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a parameter for a model behaviour by supplying its name and an XPath expression identifying the location of its content. [22.5.4.5. Behaviours and their parameters]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <attribute name="name">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a name for the parameter being supplied
Suggested values include: 1] alternate; 2] default; 3] height; 4] id; 5] label; 6] level; 7] link; 8] place; 9] type; 10] url; 11] width</a:documentation>
            <choice>
               <value>alternate</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">when used with behaviour alternate, a parameter of this name supplies one of the pair of possible values; for example the regularized form rather than the original form within a <code xmlns="http://www.w3.org/1999/xhtml">&lt;choice&gt;</code> element.</a:documentation>
               <value>default</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">when used with behaviour alternate, a parameter of this name supplies one of the pair of possible values; for example the original form rather than the regularized form within a <code xmlns="http://www.w3.org/1999/xhtml">&lt;choice&gt;</code> element.</a:documentation>
               <value>height</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">when used with behaviour graphic, a parameter of this name supplies a value for the height of the graphic e.g. "300px", "50%".</a:documentation>
               <value>id</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a parameter of this name should supply a unique identifier for the element being processed; as for example with the anchor behaviour</a:documentation>
               <value>label</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a parameter of this name should supply an expression to be used to label something, for example `concat('Page ', @n)` for a page break or `@n` for a footnote reference; typically used with the note or break behaviours</a:documentation>
               <value>level</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">when used with the heading behaviour, a parameter of this name supplies a positive integer indicating the hierarchic level of a heading.</a:documentation>
               <value>link</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">when used with the link behaviour, a parameter of this name should supply a URL to be used as the target of a link.</a:documentation>
               <value>place</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">when used with the note behaviour, a parameter of this name should provide a string which describes the intended placement of some text; typical values include "margin", "footnote", "endnote", "inline", "bottom"</a:documentation>
               <value>type</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a parameter of this name can be used to categorize the specified behaviour in any way; for example the kind of break (when used with the break behaviour) or the kind of index to be generated (if used with the index behaviour) etc.</a:documentation>
               <value>url</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">when used with behaviour graphic, a parameter of this name supplies a a URL indicating the graphic intended.</a:documentation>
               <value>width</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">when used with behaviour graphic, a parameter of this name supplies a value for the width of the graphic e.g. "400px", "70%".</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </choice>
         </attribute>
         <attribute name="value">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies an XPath expression which when evaluated provides the value for the parameter</a:documentation>
            <text/>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="content">
      <element name="content">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(content model) contains a declaration of the intended content model for the element (or other construct) being specified. [22.5. Element Specifications]</a:documentation>
         <choice>
            <ref name="valList"/>
            <oneOrMore>
               <ref name="model.contentPart"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="anyElement-content"/>
            </oneOrMore>
         </choice>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="autoPrefix"
                       a:defaultValue="true">
               <a:documentation>controls whether or not pattern names generated in the corresponding RELAX NG schema source are automatically prefixed to avoid potential nameclashes.</a:documentation>
               <choice>
                  <value>true</value>
                  <a:documentation>Each name referenced in e.g. an <code xmlns="http://www.w3.org/1999/xhtml">&lt;rng:ref&gt;</code> element within a content model is automatically prefixed by the value of the <code xmlns="http://www.w3.org/1999/xhtml">@prefix</code> attribute on the current <code xmlns="http://www.w3.org/1999/xhtml">&lt;schemaSpec&gt;</code>
                  </a:documentation>
                  <value>false</value>
                  <a:documentation>No prefixes are added: any prefix required by the value of the <code xmlns="http://www.w3.org/1999/xhtml">@prefix</code> attribute on the current <code xmlns="http://www.w3.org/1999/xhtml">&lt;schemaSpec&gt;</code> must therefore be supplied explicitly, as appropriate.</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="sequence">
      <element name="sequence">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the constructs referenced by its children form a sequence [22.5.1. Defining Content Models]</a:documentation>
         <oneOrMore>
            <ref name="model.contentPart"/>
         </oneOrMore>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-sequence-sequencechilden-constraint-assert-39">
            <rule context="tei:sequence">
               <sch:assert 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"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="count(*)&gt;1">The sequence element must have at least two child elements</sch:assert>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.repeatable.attributes"/>
         <optional>
            <attribute name="preserveOrder">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">if true, indicates that the order in which component elements of a sequence appear in a document must correspond to the order in which they are given in the content model.</a:documentation>
               <data type="boolean"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="alternate">
      <element name="alternate">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the constructs referenced by its children form an alternation [22.5.1. Defining Content Models]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="valList"/>
               <ref name="model.contentPart"/>
            </choice>
         </oneOrMore>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-alternate-alternatechilden-constraint-assert-40">
            <rule context="tei:alternate">
               <sch:assert 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"
                           xmlns="http://www.tei-c.org/ns/1.0"
                           test="count(*)&gt;1">The alternate element must have at least two child elements</sch:assert>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.repeatable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="constraint">
      <element name="constraint">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(constraint rules) the formal rules of a constraint [22.5. Element Specifications]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="anyElement-constraint"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="constraintSpec">
      <element name="constraintSpec">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(constraint on schema) contains a formal constraint, typically expressed in a rule-based schema language, to which a construct must conform in order to be considered valid [22.5. Element Specifications]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <ref name="model.glossLike"/>
                  <ref name="model.descLike"/>
               </choice>
            </zeroOrMore>
            <optional>
               <ref name="constraint"/>
            </optional>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-constraintSpec-empty-based-on-mode-constraint-rule-33">
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:constraintSpec[ @mode eq 'delete']">
               <sch:report test="child::*">This constraintSpec element has a mode= of "delete" even though it has child elements. Change the mode= to "add", "change", or "replace", or remove the child elements.</sch:report>
            </sch:rule>
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:constraintSpec[ @mode eq 'change']">
               <sch:assert test="child::*">This constraintSpec element has a mode= of "change", but does not have any child elements. Specify child elements, or change the mode= to "delete".</sch:assert>
            </sch:rule>
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:constraintSpec[ @mode = ('add','replace') ]">
               <sch:assert test="child::tei:constraint">This constraintSpec element has a mode= of "<sch:value-of select="@mode"/>", but does not have a child 'constraint' element. Use a child 'constraint' element or change the mode= to "delete" or "change".</sch:assert>
            </sch:rule>
         </pattern>
         <sch:ns 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"
                 xmlns="http://www.tei-c.org/ns/1.0"
                 prefix="s"
                 uri="http://www.ascc.net/xml/schematron"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-constraintSpec-sch_no_more-constraint-report-43">
            <rule context="tei:constraintSpec">
               <sch:report xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           test="tei:constraint/s:* and @scheme = ('isoschematron','schematron')">Rules
        in the Schematron 1.* language must be inside a constraintSpec
        with a value other than 'schematron' or 'isoschematron' on the
        scheme attribute</sch:report>
            </rule>
         </pattern>
         <sch:ns 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"
                 xmlns="http://www.tei-c.org/ns/1.0"
                 prefix="sch"
                 uri="http://purl.oclc.org/dsdl/schematron"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-constraintSpec-isosch-constraint-report-44">
            <rule context="tei:constraintSpec">
               <sch:report xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                           test="tei:constraint/sch:* and not( @scheme eq 'schematron')">Rules
        in the ISO Schematron language must be inside a constraintSpec
        with the value 'schematron' on the scheme attribute</sch:report>
            </rule>
         </pattern>
         <sch:ns 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"
                 xmlns="http://www.tei-c.org/ns/1.0"
                 prefix="sch"
                 uri="http://purl.oclc.org/dsdl/schematron"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-constraintSpec-needrules-constraint-rule-36">
            <sch:rule xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      context="tei:macroSpec/tei:constraintSpec[@scheme eq 'schematron']/tei:constraint">
               <sch:report test="sch:assert|sch:report">An ISO Schematron constraint specification for a macro should not
        have an 'assert' or 'report' element without a parent 'rule' element</sch:report>
            </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-constraintSpec-unique-constraintSpec-ident-constraint-rule-37">
            <sch:rule xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      context="tei:constraintSpec[ @mode eq 'add' or not( @mode ) ]">
               <sch:let name="myIdent" value="normalize-space(@ident)"/>
               <sch:report test="preceding::tei:constraintSpec[ normalize-space(@ident) eq $myIdent ]">
        The @ident of 'constraintSpec' should be unique; this one (<sch:value-of select="$myIdent"/>) is the same as that of a previous 'constraintSpec'.
        </sch:report>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.identified.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 <code xmlns="http://www.w3.org/1999/xhtml">&lt;constraintSpec&gt;</code> element in some sense; used to indicate when a <code xmlns="http://www.w3.org/1999/xhtml">&lt;constraintSpec&gt;</code> warns about a deprecated construct.
Suggested values include: 1] deprecationWarning</a:documentation>
               <choice>
                  <value>deprecationWarning</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates that this constraint specification warns that some other construct in the schema is deprecated.</a:documentation>
                  <data type="token">
                     <param name="pattern">[^\p{C}\p{Z}]+</param>
                  </data>
               </choice>
            </attribute>
         </optional>
         <attribute name="scheme">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies the name of the language in which the constraints are defined
Suggested values include: 1] schematron (ISO Schematron)</a:documentation>
            <choice>
               <value>schematron</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(ISO Schematron) </a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </choice>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="attList">
      <element name="attList">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(attribute list) contains documentation for all the attributes associated with this element, as a series of <code xmlns="http://www.w3.org/1999/xhtml">&lt;attDef&gt;</code> elements. [22.5. Element Specifications 22.6. Class Specifications]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="attRef"/>
               <ref name="attDef"/>
               <ref name="attList"/>
            </choice>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="org"
                       a:defaultValue="group">
               <a:documentation>(organization) specifies whether all the attributes in the list are available (org="group") or only one of them (org="choice")</a:documentation>
               <choice>
                  <value>group</value>
                  <a:documentation>grouped</a:documentation>
                  <value>choice</value>
                  <a:documentation>alternated</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="attDef">
      <element name="attDef">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(attribute definition) contains the definition of a single attribute. [22.5.3. Attribute List Specification]</a:documentation>
         <group>      
            <zeroOrMore>
               <choice>
                  <ref name="model.glossLike"/>
                  <ref name="model.descLike"/>
               </choice>
            </zeroOrMore>
            <optional>
               <ref name="datatype"/>
            </optional>
            <zeroOrMore>
               <ref name="constraintSpec"/>
            </zeroOrMore>
            <optional>
               <ref name="defaultVal"/>
            </optional>
            <optional>
               <choice>
                  <ref name="valList"/>     
                  <oneOrMore>
                     <ref name="valDesc"/>
                  </oneOrMore>
               </choice>
            </optional>
            <zeroOrMore>
               <ref name="exemplum"/>
            </zeroOrMore>
            <zeroOrMore>
               <ref name="remarks"/>
            </zeroOrMore>
         </group>
         <ns xmlns="http://purl.oclc.org/dsdl/schematron"
             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"
             prefix="teix"
             uri="http://www.tei-c.org/ns/Examples"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-attDef-attDefContents-constraint-assert-45">
            <rule context="tei:attDef">
               <assert 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"
                       test="ancestor::teix:egXML[@valid='feasible'] or @mode eq 'change' or @mode eq 'delete' or tei:datatype or tei:valList[@type='closed']">Attribute: the definition of the @<value-of select="@ident"/> attribute in the <value-of select="ancestor::*[@ident][1]/@ident"/>
                  <value-of select="' '"/>
                  <value-of select="local-name(ancestor::*[@ident][1])"/> should have a closed valList or a datatype</assert>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-attDef-noDefault4Required-constraint-rule-38">
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:attDef[@usage eq 'req']">
	              <sch:report test="tei:defaultVal">Since the @<sch:value-of select="@ident"/> attribute is required, it will always be specified. Thus the default value (of "<sch:value-of select="normalize-space(tei:defaultVal)"/>") will never be used. Either change the definition of the attribute so it is not required ("rec" or "opt"), or remove the defaultVal element.</sch:report>
            </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-attDef-defaultIsInClosedList-twoOrMore-constraint-rule-39">
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:attDef[ tei:defaultVal and tei:valList[@type eq 'closed'] and tei:datatype[ @maxOccurs &gt; 1 or @minOccurs &gt; 1 or @maxOccurs = 'unbounded' ] ]">
               <sch:assert test="tokenize(normalize-space(tei:defaultVal),' ') = tei:valList/tei:valItem/@ident">In the <sch:value-of select="local-name(ancestor::*[@ident][1])"/> defining
        <sch:value-of select="ancestor::*[@ident][1]/@ident"/> the default value of the
        @<sch:value-of select="@ident"/> attribute is not among the closed list of possible
        values</sch:assert>
            </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-attDef-defaultIsInClosedList-one-constraint-rule-40">
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:attDef[ tei:defaultVal and tei:valList[@type eq 'closed'] and tei:datatype[ not(@maxOccurs) or ( if ( @maxOccurs castable as xs:integer ) then ( @maxOccurs cast as xs:integer eq 1 ) else false() )] ]">
               <sch:assert test="string(tei:defaultVal) = tei:valList/tei:valItem/@ident">In the <sch:value-of select="local-name(ancestor::*[@ident][1])"/> defining
        <sch:value-of select="ancestor::*[@ident][1]/@ident"/> the default value of the
        @<sch:value-of select="@ident"/> attribute is not among the closed list of possible
        values</sch:assert>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.identified.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="usage"
                       a:defaultValue="opt">
               <a:documentation>specifies the optionality of the attribute.</a:documentation>
               <choice>
                  <value>req</value>
                  <a:documentation>(required) </a:documentation>
                  <value>rec</value>
                  <a:documentation>(recommended ) </a:documentation>
                  <value>opt</value>
                  <a:documentation>(optional ) </a:documentation>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="ns">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(namespace) specifies the namespace to which this attribute belongs</a:documentation>
               <data type="anyURI">
                  <param name="pattern">\S*</param>
               </data>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="attRef">
      <element name="attRef">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(attribute pointer) points to the definition of an attribute or group of attributes. [22.2. Modules and Schemas]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="class">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the name of the attribute class</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </attribute>
         </optional>
         <optional>
            <attribute name="name">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the name of the attribute</a:documentation>
               <data type="Name"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="datatype">
      <element name="datatype">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(datatype) specifies the declared value for an attribute, by referring to any datatype defined by the chosen schema language. [1.4.2. Datatype Specifications 22.5.3. Attribute List Specification]</a:documentation>
         <choice>
            <ref name="dataRef"/>
            <ref name="anyElement-datatype"/>
         </choice>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="minOccurs"
                       a:defaultValue="1">
               <a:documentation>(minimum number of occurences) indicates the minimum number of times this datatype may occur in an instance of the attribute being defined</a:documentation>
               <data type="nonNegativeInteger"/>
            </attribute>
         </optional>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="maxOccurs"
                       a:defaultValue="1">
               <a:documentation>(maximum number of occurences) indicates the maximum number of times this datatype may occur in an instance of the attribute being defined</a:documentation>
               <choice>
                  <data type="nonNegativeInteger"/>
                  <choice>
                     <value>unbounded</value>
                     <a:documentation/>
                  </choice>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="dataRef">
      <element name="dataRef">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the datatype of an attribute value, either by referencing an item in an externally defined datatype library, or by pointing to a TEI-defined data specification [22.5.3.1. Datatypes]</a:documentation>
         <zeroOrMore>
            <ref name="dataFacet"/>
         </zeroOrMore>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-dataRef-restrictDataFacet-constraint-rule-41">
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:dataRef[tei:dataFacet]">
               <sch:assert role="nonfatal" test="@name">Data facets can only be specified for references to datatypes specified by
          XML Schemas: Part 2: Datatypes — that is, for there to be a 'dataFacet' child there must be a @name attribute.</sch:assert>
               <sch:report role="nonfatal" test="@restriction">Data facets and restrictions cannot both be expressed on the same data reference — that is, the @restriction attribute cannot be used when a 'dataFacet' element is present.</sch:report>
            </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_all-dataRef-restrictAttResctrictionName-constraint-rule-42">
            <sch:rule 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"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      context="tei:dataRef[@restriction]">
               <sch:assert role="nonfatal" test="@name">Restrictions can only be specified for references to datatypes specified by
          XML Schemas: Part 2: Datatypes — that is, for there to be a @restriction attribute there must be a @name attribute, too.</sch:assert>
            </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <choice>
            <optional>
               <attribute name="key">
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the identifier used for this datatype specification</a:documentation>
                  <data type="NCName"/>
               </attribute>
            </optional>
            <optional>
               <attribute name="name">
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the name of a datatype in the list provided by <a xmlns="http://www.w3.org/1999/xhtml" href="#XSD2">XML Schemas: Part 2: Datatypes</a>
                  </a:documentation>
                  <data type="NCName"/>
               </attribute>
            </optional>
            <optional>
               <attribute name="ref">
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">a pointer to a datatype defined in some datatype library</a:documentation>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </attribute>
            </optional>
         </choice>
         <optional>
            <attribute name="restriction">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a string representing a regular expression providing additional constraints on the strings used to represent values of this datatype</a:documentation>
               <data type="token"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="dataFacet">
      <element name="dataFacet">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Restricts the value of the strings used to represent values of a datatype, according to <a xmlns="http://www.w3.org/1999/xhtml" href="#XSD2">XML Schemas: Part 2: Datatypes</a>. [22.5.3.1. Datatypes]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <attribute name="name">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the name of the facet.</a:documentation>
            <choice>
               <value>length</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>minLength</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>maxLength</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>pattern</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>enumeration</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>whiteSpace</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>maxInclusive</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>minInclusive</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>maxExclusive</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>minExclusive</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>totalDigits</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               <value>fractionDigits</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
            </choice>
         </attribute>
         <attribute name="value">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the facet value.</a:documentation>
            <data type="string"/>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="defaultVal">
      <element name="defaultVal">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(default value) specifies the default declared value for an attribute. [22.5.3. Attribute List Specification]</a:documentation>
         <text/>
         <ref name="att.global.attributes"/>
         <ref name="att.combinable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="valDesc">
      <element name="valDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value description) specifies any semantic or syntactic constraint on the value that an attribute may take, additional to the information carried by the <code xmlns="http://www.w3.org/1999/xhtml">&lt;datatype&gt;</code> element. [22.5.3. Attribute List Specification]</a:documentation>
         <ref name="macro.phraseSeq.limited"/>
         <ref name="att.global.attributes"/>
         <ref name="att.translatable.attributes"/>
         <ref name="att.combinable.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="valItem">
      <element name="valItem">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">documents a single value in a predefined list of values. [22.5.3. Attribute List Specification]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.glossLike"/>
            </zeroOrMore>
            <optional>
               <group>
	                 <oneOrMore>
                     <ref name="model.descLike"/>
                  </oneOrMore>
	                 <zeroOrMore>
                     <group>
	                       <ref name="model.glossLike"/>
	                       <zeroOrMore>
                           <ref name="model.descLike"/>
                        </zeroOrMore>
	                    </group>
                  </zeroOrMore>
	                 <zeroOrMore>
                     <ref name="remarks"/>
                  </zeroOrMore>
               </group>
            </optional>
            <optional>
               <ref name="paramList"/>
            </optional>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.combinable.attributes"/>
         <attribute name="ident">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the value concerned.</a:documentation>
            <data type="string"/>
         </attribute>
         <empty/>
      </element>
   </define>
   <define name="valList">
      <element name="valList">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value list) contains one or more <code xmlns="http://www.w3.org/1999/xhtml">&lt;valItem&gt;</code> elements defining possible values. [22.5.3. Attribute List Specification]</a:documentation>
         <zeroOrMore>
            <ref name="valItem"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.combinable.attributes"/>
         <optional>
            <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
                       name="type"
                       a:defaultValue="open">
               <a:documentation>specifies the extensibility of the list of values specified.</a:documentation>
               <choice>
                  <value>closed</value>
                  <a:documentation>only the values specified are permitted.</a:documentation>
                  <value>semi</value>
                  <a:documentation>(semi-open) all the values specified should be supported, but other values are legal and software should have appropriate fallback processing for them.</a:documentation>
                  <value>open</value>
                  <a:documentation>the values specified are sample values only.</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="textNode">
      <element name="textNode">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the presence of a text node in a content model [22. Documentation Elements]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="anyElement">
      <element name="anyElement">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the presence of any elements in a content model [22. Documentation Elements]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <ref name="att.repeatable.attributes"/>
         <optional>
            <attribute name="require">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a list of namespaces to one of which the permitted elements must belong. </a:documentation>
               <list>
                  <oneOrMore>
                     <data type="anyURI">
                        <param name="pattern">\S*</param>
                     </data>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="except">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a list of namespaces or prefixed element names which are not permitted.</a:documentation>
               <list>
                  <oneOrMore>
                     <choice>
                        <data type="anyURI">
                           <param name="pattern">[^/\s]+:\S*</param>
                        </data>
                        <data type="Name">
                           <param name="pattern">.+:.+</param>
                        </data>
                     </choice>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="empty">
      <element name="empty">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the presence of an empty node within a content model [22. Documentation Elements]</a:documentation>
         <empty/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <start>
      <choice>
         <ref name="TEI"/>
         <ref name="teiCorpus"/>
      </choice>
   </start>
</grammar>
