<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:tei="http://www.tei-c.org/ns/1.0"
         xmlns:teix="http://www.tei-c.org/ns/Examples"
         xmlns:xlink="http://www.w3.org/1999/xlink"
         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
         ns="http://www.tei-c.org/ns/1.0"><!--
Schema generated from ODD source 2025-08-28T17:16:50Z. . 
TEI Edition: P5 Version 4.10.1. Last updated on 28th August 2025, revision 3cd82e7a3 
TEI Edition Location: https://www.tei-c.org/Vault/P5/4.10.1/ 
  
--><!--This template file is freely available and you are hereby authorised to copy, modify, and redistribute it in any way without further reference or permissions. When making such modifications, you are strongly recommended to change the present text to include an accurate statement of the licencing conditions applicable to your modified text.-->
   <define name="macro.limitedContent">
      <zeroOrMore>
         <choice>
            <text/>
            <ref name="model.limitedPhrase"/>
            <ref name="model.inter"/>
         </choice>
      </zeroOrMore>
   </define>
   <define name="macro.xtext">
      <zeroOrMore>
         <choice>
            <text/>
            <ref name="model.gLike"/>
         </choice>
      </zeroOrMore>
   </define>
   <define name="att.cmc.attributes">
      <ref name="att.cmc.attribute.generatedBy"/>
   </define>
   <define name="att.cmc.attribute.generatedBy">
      <optional>
         <attribute name="generatedBy">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(generated by) categorizes how the content of an element was generated in a CMC environment.
Suggested values include: 1] human; 2] template; 3] system; 4] bot; 5] unspecified</a:documentation>
            <choice>
               <value>human</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the content was naturally typed or spoken by a human user</a:documentation>
               <value>template</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the content was generated after a human user activated a template for its insertion</a:documentation>
               <value>system</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the content was generated by the system, i.e. the CMC environment</a:documentation>
               <value>bot</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the content was generated by a bot, i.e. a non-human agent, typically one that is not part of the CMC environment itself</a:documentation>
               <value>unspecified</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the content was generated by an unknown or unspecified process</a:documentation>
               <data type="token">
                  <param name="pattern">[^\p{C}\p{Z}]+</param>
               </data>
            </choice>
         </attribute>
      </optional>
   </define>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="isofs-att.cmc-generatedBy-CMC_generatedBy_within_post-constraint-rule-1">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:rng="http://relaxng.org/ns/structure/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                context="tei:*[@generatedBy]">
         <sch:assert test="ancestor-or-self::tei:post">The @generatedBy attribute is for use within a &lt;post&gt; element.</sch:assert>
      </sch:rule>
   </pattern>
   <define name="att.datcat.attributes">
      <ref name="att.datcat.attribute.datcat"/>
      <ref name="att.datcat.attribute.valueDatcat"/>
      <ref name="att.datcat.attribute.targetDatcat"/>
   </define>
   <define name="att.datcat.attribute.datcat">
      <optional>
         <attribute name="datcat">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a pointer to a definition of, and/or general information about, (a) an information container (element or attribute) or (b) a value of an information container (element content or attribute value), by referencing an external taxonomy or ontology. If <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@valueDatcat</code> is present in the immediate context, this attribute takes on role (a), while <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@valueDatcat</code> performs role (b).</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.datcat.attribute.valueDatcat">
      <optional>
         <attribute name="valueDatcat">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a definition of, and/or general information about a value of an information container (element content or attribute value), by reference to an external taxonomy or ontology. Used especially where a contrast with <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@datcat</code> is needed.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.datcat.attribute.targetDatcat">
      <optional>
         <attribute name="targetDatcat">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a definition of, and/or general information about, information structure of an object referenced or modeled by the containing element, by reference to an external taxonomy or ontology. This attribute has the characteristics of the <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@datcat</code> attribute, except that it addresses not its containing element, but an object that is being referenced or modeled by its containing element.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.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.responsibility.attributes">
      <ref name="att.global.responsibility.attribute.cert"/>
      <ref name="att.global.responsibility.attribute.resp"/>
   </define>
   <define name="att.global.responsibility.attribute.cert">
      <optional>
         <attribute name="cert">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(certainty) signifies the degree of certainty associated with the intervention or interpretation.</a:documentation>
            <choice>
               <data type="double">
                  <param name="minInclusive">0</param>
                  <param name="maxInclusive">1</param>
               </data>
               <choice>
                  <value>high</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                  <value>medium</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                  <value>low</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                  <value>unknown</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               </choice>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.global.responsibility.attribute.resp">
      <optional>
         <attribute name="resp">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(responsible party) indicates the agency responsible for the intervention or interpretation, for example an editor or transcriber.</a:documentation>
            <list>
               <oneOrMore>
                  <data type="anyURI">
                     <param name="pattern">\S+</param>
                  </data>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.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="isofs-att.global.source-source-only_1_ODD_source-constraint-rule-2">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:rng="http://relaxng.org/ns/structure/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:xi="http://www.w3.org/2001/XInclude"
                context="tei:*[@source]">
         <sch:let name="srcs" value="tokenize( normalize-space(@source),' ')"/>
         <sch:report test="(   self::tei:classRef                                 | self::tei:dataRef                                 | self::tei:elementRef                                 | self::tei:macroRef                                 | self::tei:moduleRef                                 | self::tei:schemaSpec )                                   and                                   $srcs[2]">
              When used on a schema description element (like
              <sch:value-of select="name(.)"/>), the @source attribute
              should have only 1 value. (This one has <sch:value-of select="count($srcs)"/>.)
            </sch:report>
      </sch:rule>
   </pattern>
   <define name="att.global.attributes">
      <ref name="att.global.rendition.attributes"/>
      <ref name="att.global.responsibility.attributes"/>
      <ref name="att.global.source.attributes"/>
      <ref name="att.global.attribute.xmlid"/>
      <ref name="att.global.attribute.xmllang"/>
      <ref name="att.global.attribute.xmlbase"/>
   </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.xmllang">
      <optional>
         <attribute name="xml:lang">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(language) indicates the language of the element content using a tag generated according to <a xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0"
                  href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">BCP 47</a>.</a:documentation>
            <choice>
               <data type="language"/>
               <choice>
                  <value/>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               </choice>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.global.attribute.xmlbase">
      <optional>
         <attribute name="xml:base">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a base URI reference with which applications can resolve relative URI references into absolute URI references.</a:documentation>
            <data type="anyURI">
               <param name="pattern">\S+</param>
            </data>
         </attribute>
      </optional>
   </define>
   <define name="model.nameLike.agent">
      <notAllowed/>
   </define>
   <define name="model.nameLike.agent_alternation">
      <notAllowed/>
   </define>
   <define name="model.nameLike.agent_sequence">
      <empty/>
   </define>
   <define name="model.nameLike.agent_sequenceOptional">
      <empty/>
   </define>
   <define name="model.nameLike.agent_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.nameLike.agent_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.segLike">
      <notAllowed/>
   </define>
   <define name="model.segLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.segLike_sequence">
      <empty/>
   </define>
   <define name="model.segLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.segLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.segLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.hiLike">
      <notAllowed/>
   </define>
   <define name="model.hiLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.hiLike_sequence">
      <empty/>
   </define>
   <define name="model.hiLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.hiLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.hiLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.emphLike">
      <notAllowed/>
   </define>
   <define name="model.emphLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.emphLike_sequence">
      <empty/>
   </define>
   <define name="model.emphLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.emphLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.emphLike_sequenceRepeatable">
      <notAllowed/>
   </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">
      <notAllowed/>
   </define>
   <define name="model.dateLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.dateLike_sequence">
      <empty/>
   </define>
   <define name="model.dateLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.dateLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.dateLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.measureLike">
      <notAllowed/>
   </define>
   <define name="model.measureLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.measureLike_sequence">
      <empty/>
   </define>
   <define name="model.measureLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.measureLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.measureLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.egLike">
      <notAllowed/>
   </define>
   <define name="model.egLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.egLike_sequence">
      <empty/>
   </define>
   <define name="model.egLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.egLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.egLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.graphicLike">
      <notAllowed/>
   </define>
   <define name="model.graphicLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.graphicLike_sequence">
      <empty/>
   </define>
   <define name="model.graphicLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.graphicLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.graphicLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.offsetLike">
      <notAllowed/>
   </define>
   <define name="model.offsetLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.offsetLike_sequence">
      <empty/>
   </define>
   <define name="model.offsetLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.offsetLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.offsetLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.pPart.msdesc">
      <notAllowed/>
   </define>
   <define name="model.pPart.msdesc_alternation">
      <notAllowed/>
   </define>
   <define name="model.pPart.msdesc_sequence">
      <empty/>
   </define>
   <define name="model.pPart.msdesc_sequenceOptional">
      <empty/>
   </define>
   <define name="model.pPart.msdesc_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.pPart.msdesc_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.pPart.editorial">
      <notAllowed/>
   </define>
   <define name="model.pPart.editorial_alternation">
      <notAllowed/>
   </define>
   <define name="model.pPart.editorial_sequence">
      <empty/>
   </define>
   <define name="model.pPart.editorial_sequenceOptional">
      <empty/>
   </define>
   <define name="model.pPart.editorial_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.pPart.editorial_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.pPart.transcriptional">
      <notAllowed/>
   </define>
   <define name="model.pPart.transcriptional_alternation">
      <notAllowed/>
   </define>
   <define name="model.pPart.transcriptional_sequence">
      <empty/>
   </define>
   <define name="model.pPart.transcriptional_sequenceOptional">
      <empty/>
   </define>
   <define name="model.pPart.transcriptional_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.pPart.transcriptional_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.pPart.edit">
      <choice>
         <ref name="model.pPart.editorial"/>
         <ref name="model.pPart.transcriptional"/>
      </choice>
   </define>
   <define name="model.pPart.edit_alternation">
      <choice>
         <ref name="model.pPart.editorial_alternation"/>
         <ref name="model.pPart.transcriptional_alternation"/>
      </choice>
   </define>
   <define name="model.pPart.edit_sequence">
      <ref name="model.pPart.editorial_sequence"/>
      <ref name="model.pPart.transcriptional_sequence"/>
   </define>
   <define name="model.pPart.edit_sequenceOptional">
      <optional>
         <ref name="model.pPart.editorial_sequenceOptional"/>
      </optional>
      <optional>
         <ref name="model.pPart.transcriptional_sequenceOptional"/>
      </optional>
   </define>
   <define name="model.pPart.edit_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="model.pPart.editorial_sequenceOptionalRepeatable"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="model.pPart.transcriptional_sequenceOptionalRepeatable"/>
      </zeroOrMore>
   </define>
   <define name="model.pPart.edit_sequenceRepeatable">
      <oneOrMore>
         <ref name="model.pPart.editorial_sequenceRepeatable"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="model.pPart.transcriptional_sequenceRepeatable"/>
      </oneOrMore>
   </define>
   <define name="model.ptrLike">
      <notAllowed/>
   </define>
   <define name="model.ptrLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.ptrLike_sequence">
      <empty/>
   </define>
   <define name="model.ptrLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.ptrLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.ptrLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.lPart">
      <notAllowed/>
   </define>
   <define name="model.lPart_alternation">
      <notAllowed/>
   </define>
   <define name="model.lPart_sequence">
      <empty/>
   </define>
   <define name="model.lPart_sequenceOptional">
      <empty/>
   </define>
   <define name="model.lPart_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.lPart_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.global.meta">
      <choice>
         <ref name="fs"/>
         <ref name="fLib"/>
         <ref name="fvLib"/>
      </choice>
   </define>
   <define name="model.global.meta_alternation">
      <choice>
         <ref name="fs"/>
         <ref name="fLib"/>
         <ref name="fvLib"/>
      </choice>
   </define>
   <define name="model.global.meta_sequence">
      <ref name="fs"/>
      <ref name="fLib"/>
      <ref name="fvLib"/>
   </define>
   <define name="model.global.meta_sequenceOptional">
      <optional>
         <ref name="fs"/>
      </optional>
      <optional>
         <ref name="fLib"/>
      </optional>
      <optional>
         <ref name="fvLib"/>
      </optional>
   </define>
   <define name="model.global.meta_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="fs"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="fLib"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="fvLib"/>
      </zeroOrMore>
   </define>
   <define name="model.global.meta_sequenceRepeatable">
      <oneOrMore>
         <ref name="fs"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="fLib"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="fvLib"/>
      </oneOrMore>
   </define>
   <define name="model.milestoneLike">
      <notAllowed/>
   </define>
   <define name="model.milestoneLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.milestoneLike_sequence">
      <empty/>
   </define>
   <define name="model.milestoneLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.milestoneLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.milestoneLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.gLike">
      <notAllowed/>
   </define>
   <define name="model.oddDecl">
      <notAllowed/>
   </define>
   <define name="model.oddDecl_alternation">
      <notAllowed/>
   </define>
   <define name="model.oddDecl_sequence">
      <empty/>
   </define>
   <define name="model.oddDecl_sequenceOptional">
      <empty/>
   </define>
   <define name="model.oddDecl_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.oddDecl_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.phrase.xml">
      <notAllowed/>
   </define>
   <define name="model.phrase.xml_alternation">
      <notAllowed/>
   </define>
   <define name="model.phrase.xml_sequence">
      <empty/>
   </define>
   <define name="model.phrase.xml_sequenceOptional">
      <empty/>
   </define>
   <define name="model.phrase.xml_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.phrase.xml_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.specDescLike">
      <notAllowed/>
   </define>
   <define name="model.specDescLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.specDescLike_sequence">
      <empty/>
   </define>
   <define name="model.specDescLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.specDescLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.specDescLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.biblLike">
      <notAllowed/>
   </define>
   <define name="model.biblLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.biblLike_sequence">
      <empty/>
   </define>
   <define name="model.biblLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.biblLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.biblLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.labelLike">
      <notAllowed/>
   </define>
   <define name="model.labelLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.labelLike_sequence">
      <empty/>
   </define>
   <define name="model.labelLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.labelLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.labelLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.listLike">
      <notAllowed/>
   </define>
   <define name="model.listLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.listLike_sequence">
      <empty/>
   </define>
   <define name="model.listLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.listLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.listLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.noteLike">
      <notAllowed/>
   </define>
   <define name="model.noteLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.noteLike_sequence">
      <empty/>
   </define>
   <define name="model.noteLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.noteLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.noteLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.stageLike">
      <notAllowed/>
   </define>
   <define name="model.stageLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.stageLike_sequence">
      <empty/>
   </define>
   <define name="model.stageLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.stageLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.stageLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.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.global.edit">
      <notAllowed/>
   </define>
   <define name="model.global.edit_alternation">
      <notAllowed/>
   </define>
   <define name="model.global.edit_sequence">
      <empty/>
   </define>
   <define name="model.global.edit_sequenceOptional">
      <empty/>
   </define>
   <define name="model.global.edit_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.global.edit_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.placeNamePart">
      <notAllowed/>
   </define>
   <define name="model.placeNamePart_alternation">
      <notAllowed/>
   </define>
   <define name="model.placeNamePart_sequence">
      <empty/>
   </define>
   <define name="model.placeNamePart_sequenceOptional">
      <empty/>
   </define>
   <define name="model.placeNamePart_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.placeNamePart_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.placeStateLike">
      <choice>
         <ref name="model.placeNamePart"/>
      </choice>
   </define>
   <define name="model.placeStateLike_alternation">
      <choice>
         <ref name="model.placeNamePart_alternation"/>
      </choice>
   </define>
   <define name="model.placeStateLike_sequence">
      <ref name="model.placeNamePart_sequence"/>
   </define>
   <define name="model.placeStateLike_sequenceOptional">
      <optional>
         <ref name="model.placeNamePart_sequenceOptional"/>
      </optional>
   </define>
   <define name="model.placeStateLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="model.placeNamePart_sequenceOptionalRepeatable"/>
      </zeroOrMore>
   </define>
   <define name="model.placeStateLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="model.placeNamePart_sequenceRepeatable"/>
      </oneOrMore>
   </define>
   <define name="model.quoteLike">
      <notAllowed/>
   </define>
   <define name="model.quoteLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.quoteLike_sequence">
      <empty/>
   </define>
   <define name="model.quoteLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.quoteLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.quoteLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.attributable">
      <choice>
         <ref name="model.quoteLike"/>
      </choice>
   </define>
   <define name="model.attributable_alternation">
      <choice>
         <ref name="model.quoteLike_alternation"/>
      </choice>
   </define>
   <define name="model.attributable_sequence">
      <ref name="model.quoteLike_sequence"/>
   </define>
   <define name="model.attributable_sequenceOptional">
      <optional>
         <ref name="model.quoteLike_sequenceOptional"/>
      </optional>
   </define>
   <define name="model.attributable_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="model.quoteLike_sequenceOptionalRepeatable"/>
      </zeroOrMore>
   </define>
   <define name="model.attributable_sequenceRepeatable">
      <oneOrMore>
         <ref name="model.quoteLike_sequenceRepeatable"/>
      </oneOrMore>
   </define>
   <define name="model.addressLike">
      <notAllowed/>
   </define>
   <define name="model.addressLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.addressLike_sequence">
      <empty/>
   </define>
   <define name="model.addressLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.addressLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.addressLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.nameLike">
      <choice>
         <ref name="model.nameLike.agent"/>
         <ref name="model.offsetLike"/>
         <ref name="model.placeStateLike"/>
      </choice>
   </define>
   <define name="model.nameLike_alternation">
      <choice>
         <ref name="model.nameLike.agent_alternation"/>
         <ref name="model.offsetLike_alternation"/>
         <ref name="model.placeStateLike_alternation"/>
      </choice>
   </define>
   <define name="model.nameLike_sequence">
      <ref name="model.nameLike.agent_sequence"/>
      <ref name="model.offsetLike_sequence"/>
      <ref name="model.placeStateLike_sequence"/>
   </define>
   <define name="model.nameLike_sequenceOptional">
      <optional>
         <ref name="model.nameLike.agent_sequenceOptional"/>
      </optional>
      <optional>
         <ref name="model.offsetLike_sequenceOptional"/>
      </optional>
      <optional>
         <ref name="model.placeStateLike_sequenceOptional"/>
      </optional>
   </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>
   </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>
   </define>
   <define name="model.featureVal">
      <choice>
         <ref name="model.featureVal.complex"/>
         <ref name="model.featureVal.single"/>
      </choice>
   </define>
   <define name="model.pPart.data">
      <choice>
         <ref name="model.dateLike"/>
         <ref name="model.measureLike"/>
         <ref name="model.addressLike"/>
         <ref name="model.nameLike"/>
      </choice>
   </define>
   <define name="model.pPart.data_alternation">
      <choice>
         <ref name="model.dateLike_alternation"/>
         <ref name="model.measureLike_alternation"/>
         <ref name="model.addressLike_alternation"/>
         <ref name="model.nameLike_alternation"/>
      </choice>
   </define>
   <define name="model.pPart.data_sequence">
      <ref name="model.dateLike_sequence"/>
      <ref name="model.measureLike_sequence"/>
      <ref name="model.addressLike_sequence"/>
      <ref name="model.nameLike_sequence"/>
   </define>
   <define name="model.pPart.data_sequenceOptional">
      <optional>
         <ref name="model.dateLike_sequenceOptional"/>
      </optional>
      <optional>
         <ref name="model.measureLike_sequenceOptional"/>
      </optional>
      <optional>
         <ref name="model.addressLike_sequenceOptional"/>
      </optional>
      <optional>
         <ref name="model.nameLike_sequenceOptional"/>
      </optional>
   </define>
   <define name="model.pPart.data_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="model.dateLike_sequenceOptionalRepeatable"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="model.measureLike_sequenceOptionalRepeatable"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="model.addressLike_sequenceOptionalRepeatable"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="model.nameLike_sequenceOptionalRepeatable"/>
      </zeroOrMore>
   </define>
   <define name="model.pPart.data_sequenceRepeatable">
      <oneOrMore>
         <ref name="model.dateLike_sequenceRepeatable"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="model.measureLike_sequenceRepeatable"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="model.addressLike_sequenceRepeatable"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="model.nameLike_sequenceRepeatable"/>
      </oneOrMore>
   </define>
   <define name="model.inter">
      <choice>
         <ref name="model.egLike"/>
         <ref name="model.oddDecl"/>
         <ref name="model.biblLike"/>
         <ref name="model.labelLike"/>
         <ref name="model.listLike"/>
         <ref name="model.stageLike"/>
         <ref name="model.attributable"/>
      </choice>
   </define>
   <define name="model.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="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. [19.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"
                        xmlns:rng="http://relaxng.org/ns/structure/1.0">@baseTypes</code> attribute. When no <code xmlns="http://www.w3.org/1999/xhtml"
                        xmlns:rng="http://relaxng.org/ns/structure/1.0">@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. [19.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. [19.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"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@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"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">&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. [19.11. Feature System Declaration]</a:documentation>
         <group>
            <optional>
               <ref name="fDescr"/>
            </optional>
            <ref name="vRange"/>
            <optional>
               <ref name="vDefault"/>
            </optional>
         </group>
         <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 ), indicating the name of the feature being declared; matches the <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@name</code> attribute of <code xmlns="http://www.w3.org/1999/xhtml"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">&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. [19.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"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;fs&gt;</code>, <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;vAlt&gt;</code>, or primitive value; for the value of an <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&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"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;f&gt;</code> contains multiple values (as sanctioned by the <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">@org</code> attribute), then each value must be subsumed by the <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;vRange&gt;</code>. [19.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"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&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"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">@org</code> attribute of the enclosing <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;fDecl&gt;</code>) more <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&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"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;if&gt;</code> elements; if no default is specified, or no condition matches, the value none is assumed. [19.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. [19.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"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;if&gt;</code>, or the antecedent and the consequent in a <code xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;cond&gt;</code> element. [19.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. [19.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. [19.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. [19.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"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;bicond&gt;</code> element. [19.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. [19.2. Elementary Feature Structures and the Binary
Feature Value]</a:documentation>
         <zeroOrMore>
            <ref name="f"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.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. [19.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. [19.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. [19.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. [19.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"
                     xmlns:rng="http://relaxng.org/ns/structure/1.0">@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. [19.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. [19.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. [19.7. Collections as Complex Feature Values]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="fs"/>
               <ref name="model.featureVal.single"/>
               <ref name="vColl"/>
            </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. [19.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. [19.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. [19.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"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">@org</code> attribute. [19.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"
                  xmlns:rng="http://relaxng.org/ns/structure/1.0">&lt;f&gt;</code> (feature) elements. [19.4. Feature Libraries and Feature-Value Libraries]</a:documentation>
         <oneOrMore>
            <ref name="f"/>
         </oneOrMore>
         <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"
             prefix="tei"
             uri="http://www.tei-c.org/ns/1.0"/>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.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). [19.4. Feature Libraries and Feature-Value Libraries]</a:documentation>
         <zeroOrMore>
            <ref name="model.featureVal"/>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.cmc.attributes"/>
         <empty/>
      </element>
   </define>
   <start>
      <choice>
         <ref name="fs"/>
         <ref name="fvLib"/>
         <ref name="fLib"/>
      </choice>
   </start>
   <sch:ns xmlns="http://www.tei-c.org/ns/1.0"
           xmlns:rng="http://relaxng.org/ns/structure/1.0"
           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
           prefix="tei"
           uri="http://www.tei-c.org/ns/1.0"/>
   <sch:ns xmlns="http://www.tei-c.org/ns/1.0"
           xmlns:rng="http://relaxng.org/ns/structure/1.0"
           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
           prefix="xs"
           uri="http://www.w3.org/2001/XMLSchema"/>
   <sch:ns xmlns="http://www.tei-c.org/ns/1.0"
           xmlns:rng="http://relaxng.org/ns/structure/1.0"
           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
           prefix="rng"
           uri="http://relaxng.org/ns/structure/1.0"/>
   <sch:ns xmlns="http://www.tei-c.org/ns/1.0"
           xmlns:rng="http://relaxng.org/ns/structure/1.0"
           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
           prefix="rna"
           uri="http://relaxng.org/ns/compatibility/annotations/1.0"/>
   <sch:ns xmlns="http://www.tei-c.org/ns/1.0"
           xmlns:rng="http://relaxng.org/ns/structure/1.0"
           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
           prefix="sch"
           uri="http://purl.oclc.org/dsdl/schematron"/>
   <sch:ns xmlns="http://www.tei-c.org/ns/1.0"
           xmlns:rng="http://relaxng.org/ns/structure/1.0"
           xmlns:sch="http://purl.oclc.org/dsdl/schematron"
           prefix="sch1x"
           uri="http://www.ascc.net/xml/schematron"/>
</grammar>
