<?xml version="1.0" encoding="utf-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
         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 2015-10-15T19:59:17Z. 2014.
TEI Edition: Version 2.9.1. Last updated on
	15th October 2015, revision 46ac023
TEI Edition Location: http://www.tei-c.org/Vault/P5/Version 2.9.1/
  
--><!---->
   <define name="macro.paraContent">
      <zeroOrMore>
         <choice>
            <text/>
            <ref name="model.gLike"/>
            <ref name="model.phrase"/>
            <ref name="model.inter"/>
            <ref name="model.global"/>
            <ref name="model.lLike"/>
         </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.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.anyXML">
      <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="macro.anyXML"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>
   <define name="data.certainty">
      <choice>
         <value>high</value>
         <value>medium</value>
         <value>low</value>
         <value>unknown</value>
      </choice>
   </define>
   <define name="data.numeric">
      <choice>
         <data type="double"/>
         <data type="token">
            <param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
         </data>
         <data type="decimal"/>
      </choice>
   </define>
   <define name="data.count">
      <data type="nonNegativeInteger"/>
   </define>
   <define name="data.temporal.w3c">
      <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>
   </define>
   <define name="data.truthValue">
      <data type="boolean"/>
   </define>
   <define name="data.language">
      <choice>
         <data type="language"/>
         <value/>
      </choice>
   </define>
   <define name="data.outputMeasurement">
      <data type="token">
         <param name="pattern">[\-+]?\d+(\.\d+)?(%|cm|mm|in|pt|pc|px|em|ex|gd|rem|vw|vh|vm)</param>
      </data>
   </define>
   <define name="data.pointer">
      <data type="anyURI"/>
   </define>
   <define name="data.versionNumber">
      <data type="token">
         <param name="pattern">[\d]+[a-z]*[\d]*(\.[\d]+[a-z]*[\d]*){0,3}</param>
      </data>
   </define>
   <define name="data.word">
      <data type="token">
         <param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
      </data>
   </define>
   <define name="data.sex">
      <ref name="data.word"/>
   </define>
   <define name="data.text">
      <data type="string"/>
   </define>
   <define name="data.name">
      <data type="Name"/>
   </define>
   <define name="data.enumerated">
      <ref name="data.word"/>
   </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>
                  <ref name="data.pointer"/>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.dimensions.attributes">
      <empty/>
   </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>
            <ref name="data.temporal.w3c"/>
         </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>
            <ref name="data.temporal.w3c"/>
         </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>
            <ref name="data.temporal.w3c"/>
         </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>
            <ref name="data.temporal.w3c"/>
         </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>
            <ref name="data.temporal.w3c"/>
         </attribute>
      </optional>
   </define>
   <define name="att.datable.attributes">
      <ref name="att.datable.w3c.attributes"/>
   </define>
   <define name="att.divLike.attributes">
      <empty/>
   </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>
            <ref name="data.certainty"/>
         </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>
                  <ref name="data.pointer"/>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.editLike.attributes">
      <ref name="att.dimensions.attributes"/>
      <ref name="att.source.attributes"/>
   </define>
   <define name="att.global.rendition.attributes">
      <ref name="att.global.rendition.attribute.rend"/>
      <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>
                  <ref name="data.word"/>
               </oneOrMore>
            </list>
         </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>
                  <ref name="data.pointer"/>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.global.attributes">
      <ref name="att.global.rendition.attributes"/>
      <ref name="att.global.responsibility.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>
            <ref name="data.text"/>
         </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 BCP 47.</a:documentation>
            <ref name="data.language"/>
         </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>
            <ref name="data.pointer"/>
         </attribute>
      </optional>
   </define>
   <define name="att.global.attribute.xmlspace">
      <optional>
         <attribute name="xml:space">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">signals an intention about how white space should be managed by applications.</a:documentation>
            <choice>
               <value>default</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">signals that the application's default white-space processing modes are acceptable</a:documentation>
               <value>preserve</value>
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the intent that applications preserve all white space</a:documentation>
            </choice>
         </attribute>
      </optional>
   </define>
   <define name="att.media.attributes">
      <ref name="att.media.attribute.width"/>
      <ref name="att.media.attribute.height"/>
   </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>
            <ref name="data.outputMeasurement"/>
         </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>
            <ref name="data.outputMeasurement"/>
         </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>
         <ref name="data.pointer"/>
      </attribute>
   </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>
                  <ref name="data.enumerated"/>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="att.typed.attributes">
      <ref name="att.typed.attribute.type"/>
   </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>
            <ref name="data.enumerated"/>
         </attribute>
      </optional>
   </define>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_jtei-att.typed-subtypeTyped-constraint-1">
      <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:eg="http://www.tei-c.org/ns/Examples"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                context="*[@subtype]">
        <sch:assert test="@type">The <sch:name/> element should not be categorized in detail with @subtype
 unless also categorized in general with @type</sch:assert>
      </sch:rule>
   </pattern>
   <define name="att.pointing.attributes">
      <ref name="att.pointing.attribute.target"/>
   </define>
   <define name="att.pointing.attribute.target">
      <optional>
         <attribute name="target">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the destination of the reference by supplying one or more URI References</a:documentation>
            <list>
               <oneOrMore>
                  <ref name="data.pointer"/>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </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>indicates the kind of information held in this cell or in each cell of this row.</a:documentation>
            <choice>
               <value>data</value>
               <a:documentation/>
               <value>label</value>
               <a:documentation/>
            </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>indicates the number of rows occupied by this cell or row.</a:documentation>
            <ref name="data.count"/>
         </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>
            <ref name="data.count"/>
         </attribute>
      </optional>
   </define>
   <define name="model.nameLike.agent">
      <choice>
         <ref name="name"/>
         <ref name="orgName"/>
      </choice>
   </define>
   <define name="model.nameLike.agent_alternation">
      <choice>
         <ref name="name"/>
         <ref name="orgName"/>
      </choice>
   </define>
   <define name="model.nameLike.agent_sequence">
      <ref name="name"/>
      <ref name="orgName"/>
   </define>
   <define name="model.nameLike.agent_sequenceOptional">
      <optional>
         <ref name="name"/>
      </optional>
      <optional>
         <ref name="orgName"/>
      </optional>
   </define>
   <define name="model.nameLike.agent_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="name"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="orgName"/>
      </zeroOrMore>
   </define>
   <define name="model.nameLike.agent_sequenceRepeatable">
      <oneOrMore>
         <ref name="name"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="orgName"/>
      </oneOrMore>
   </define>
   <define name="model.segLike">
      <notAllowed/>
   </define>
   <define name="model.hiLike">
      <choice>
         <ref name="hi"/>
      </choice>
   </define>
   <define name="model.hiLike_alternation">
      <choice>
         <ref name="hi"/>
      </choice>
   </define>
   <define name="model.hiLike_sequence">
      <ref name="hi"/>
   </define>
   <define name="model.hiLike_sequenceOptional">
      <optional>
         <ref name="hi"/>
      </optional>
   </define>
   <define name="model.hiLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="hi"/>
      </zeroOrMore>
   </define>
   <define name="model.hiLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="hi"/>
      </oneOrMore>
   </define>
   <define name="model.emphLike">
      <choice>
         <ref name="foreign"/>
         <ref name="emph"/>
         <ref name="mentioned"/>
         <ref name="soCalled"/>
         <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="mentioned"/>
         <ref name="soCalled"/>
         <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="mentioned"/>
      <ref name="soCalled"/>
      <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="mentioned"/>
      </optional>
      <optional>
         <ref name="soCalled"/>
      </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="mentioned"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="soCalled"/>
      </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="mentioned"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="soCalled"/>
      </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.dateLike">
      <choice>
         <ref name="date"/>
      </choice>
   </define>
   <define name="model.dateLike_alternation">
      <choice>
         <ref name="date"/>
      </choice>
   </define>
   <define name="model.dateLike_sequence">
      <ref name="date"/>
   </define>
   <define name="model.dateLike_sequenceOptional">
      <optional>
         <ref name="date"/>
      </optional>
   </define>
   <define name="model.dateLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="date"/>
      </zeroOrMore>
   </define>
   <define name="model.dateLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="date"/>
      </oneOrMore>
   </define>
   <define name="model.measureLike">
      <choice>
         <ref name="num"/>
      </choice>
   </define>
   <define name="model.measureLike_alternation">
      <choice>
         <ref name="num"/>
      </choice>
   </define>
   <define name="model.measureLike_sequence">
      <ref name="num"/>
   </define>
   <define name="model.measureLike_sequenceOptional">
      <optional>
         <ref name="num"/>
      </optional>
   </define>
   <define name="model.measureLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="num"/>
      </zeroOrMore>
   </define>
   <define name="model.measureLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="num"/>
      </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="graphic"/>
      </choice>
   </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.editorial">
      <choice>
         <ref name="abbr"/>
      </choice>
   </define>
   <define name="model.pPart.editorial_alternation">
      <choice>
         <ref name="abbr"/>
      </choice>
   </define>
   <define name="model.pPart.editorial_sequence">
      <ref name="abbr"/>
   </define>
   <define name="model.pPart.editorial_sequenceOptional">
      <optional>
         <ref name="abbr"/>
      </optional>
   </define>
   <define name="model.pPart.editorial_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="abbr"/>
      </zeroOrMore>
   </define>
   <define name="model.pPart.editorial_sequenceRepeatable">
      <oneOrMore>
         <ref name="abbr"/>
      </oneOrMore>
   </define>
   <define name="model.pPart.transcriptional">
      <choice>
         <ref name="supplied"/>
      </choice>
   </define>
   <define name="model.pPart.transcriptional_alternation">
      <choice>
         <ref name="supplied"/>
      </choice>
   </define>
   <define name="model.pPart.transcriptional_sequence">
      <ref name="supplied"/>
   </define>
   <define name="model.pPart.transcriptional_sequenceOptional">
      <optional>
         <ref name="supplied"/>
      </optional>
   </define>
   <define name="model.pPart.transcriptional_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="supplied"/>
      </zeroOrMore>
   </define>
   <define name="model.pPart.transcriptional_sequenceRepeatable">
      <oneOrMore>
         <ref name="supplied"/>
      </oneOrMore>
   </define>
   <define name="model.pPart.edit">
      <choice>
         <ref name="model.pPart.editorial"/>
         <ref name="model.pPart.transcriptional"/>
      </choice>
   </define>
   <define name="model.ptrLike">
      <choice>
         <ref name="ptr"/>
         <ref name="ref"/>
      </choice>
   </define>
   <define name="model.lPart">
      <notAllowed/>
   </define>
   <define name="model.global.meta">
      <notAllowed/>
   </define>
   <define name="model.milestoneLike">
      <choice>
         <ref name="lb"/>
      </choice>
   </define>
   <define name="model.gLike">
      <notAllowed/>
   </define>
   <define name="model.oddDecl">
      <notAllowed/>
   </define>
   <define name="model.oddDecl_alternation">
      <notAllowed/>
   </define>
   <define name="model.oddDecl_sequence">
      <empty/>
   </define>
   <define name="model.oddDecl_sequenceOptional">
      <empty/>
   </define>
   <define name="model.oddDecl_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.oddDecl_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.phrase.xml">
      <choice>
         <ref name="att"/>
         <ref name="gi"/>
         <ref name="tag"/>
         <ref name="val"/>
      </choice>
   </define>
   <define name="model.specDescLike">
      <notAllowed/>
   </define>
   <define name="model.biblLike">
      <choice>
         <ref name="bibl"/>
         <ref name="listBibl"/>
      </choice>
   </define>
   <define name="model.biblLike_alternation">
      <choice>
         <ref name="bibl"/>
         <ref name="listBibl"/>
      </choice>
   </define>
   <define name="model.biblLike_sequence">
      <ref name="bibl"/>
      <ref name="listBibl"/>
   </define>
   <define name="model.biblLike_sequenceOptional">
      <optional>
         <ref name="bibl"/>
      </optional>
      <optional>
         <ref name="listBibl"/>
      </optional>
   </define>
   <define name="model.biblLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="bibl"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="listBibl"/>
      </zeroOrMore>
   </define>
   <define name="model.biblLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="bibl"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="listBibl"/>
      </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="table"/>
         <ref name="listPerson"/>
      </choice>
   </define>
   <define name="model.listLike_alternation">
      <choice>
         <ref name="list"/>
         <ref name="table"/>
         <ref name="listPerson"/>
      </choice>
   </define>
   <define name="model.listLike_sequence">
      <ref name="list"/>
      <ref name="table"/>
      <ref name="listPerson"/>
   </define>
   <define name="model.listLike_sequenceOptional">
      <optional>
         <ref name="list"/>
      </optional>
      <optional>
         <ref name="table"/>
      </optional>
      <optional>
         <ref name="listPerson"/>
      </optional>
   </define>
   <define name="model.listLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="list"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="table"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="listPerson"/>
      </zeroOrMore>
   </define>
   <define name="model.listLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="list"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="table"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="listPerson"/>
      </oneOrMore>
   </define>
   <define name="model.noteLike">
      <choice>
         <ref name="note"/>
      </choice>
   </define>
   <define name="model.lLike">
      <notAllowed/>
   </define>
   <define name="model.lLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.lLike_sequence">
      <empty/>
   </define>
   <define name="model.lLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.lLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.lLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.pLike">
      <choice>
         <ref name="p"/>
      </choice>
   </define>
   <define name="model.pLike_alternation">
      <choice>
         <ref name="p"/>
      </choice>
   </define>
   <define name="model.pLike_sequence">
      <ref name="p"/>
   </define>
   <define name="model.pLike_sequenceOptional">
      <optional>
         <ref name="p"/>
      </optional>
   </define>
   <define name="model.pLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="p"/>
      </zeroOrMore>
   </define>
   <define name="model.pLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="p"/>
      </oneOrMore>
   </define>
   <define name="model.stageLike">
      <notAllowed/>
   </define>
   <define name="model.stageLike_alternation">
      <notAllowed/>
   </define>
   <define name="model.stageLike_sequence">
      <empty/>
   </define>
   <define name="model.stageLike_sequenceOptional">
      <empty/>
   </define>
   <define name="model.stageLike_sequenceOptionalRepeatable">
      <empty/>
   </define>
   <define name="model.stageLike_sequenceRepeatable">
      <notAllowed/>
   </define>
   <define name="model.eventLike">
      <notAllowed/>
   </define>
   <define name="model.global.edit">
      <choice>
         <ref name="gap"/>
      </choice>
   </define>
   <define name="model.divPart">
      <choice>
         <ref name="model.lLike"/>
         <ref name="model.pLike"/>
      </choice>
   </define>
   <define name="model.persStateLike">
      <choice>
         <ref name="affiliation"/>
      </choice>
   </define>
   <define name="model.personLike">
      <choice>
         <ref name="person"/>
      </choice>
   </define>
   <define name="model.personPart">
      <choice>
         <ref name="model.biblLike"/>
         <ref name="model.eventLike"/>
         <ref name="model.persStateLike"/>
         <ref name="idno"/>
      </choice>
   </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.publicationStmtPart.agency">
      <choice>
         <ref name="publisher"/>
      </choice>
   </define>
   <define name="model.publicationStmtPart.detail">
      <choice>
         <ref name="date"/>
         <ref name="pubPlace"/>
         <ref name="idno"/>
         <ref name="availability"/>
      </choice>
   </define>
   <define name="model.availabilityPart">
      <notAllowed/>
   </define>
   <define name="model.certLike">
      <notAllowed/>
   </define>
   <define name="model.descLike">
      <choice>
         <ref name="desc"/>
      </choice>
   </define>
   <define name="model.quoteLike">
      <choice>
         <ref name="quote"/>
         <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.qLike">
      <choice>
         <ref name="model.quoteLike"/>
         <ref name="q"/>
      </choice>
   </define>
   <define name="model.qLike_alternation">
      <choice>
         <ref name="model.quoteLike_alternation"/>
         <ref name="q"/>
      </choice>
   </define>
   <define name="model.qLike_sequence">
      <ref name="model.quoteLike_sequence"/>
      <ref name="q"/>
   </define>
   <define name="model.qLike_sequenceOptional">
      <optional>
         <ref name="model.quoteLike_sequenceOptional"/>
      </optional>
      <optional>
         <ref name="q"/>
      </optional>
   </define>
   <define name="model.qLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="model.quoteLike_sequenceOptionalRepeatable"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="q"/>
      </zeroOrMore>
   </define>
   <define name="model.qLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="model.quoteLike_sequenceRepeatable"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="q"/>
      </oneOrMore>
   </define>
   <define name="model.respLike">
      <choice>
         <ref name="author"/>
         <ref name="editor"/>
      </choice>
   </define>
   <define name="model.divWrapper">
      <notAllowed/>
   </define>
   <define name="model.divTopPart">
      <choice>
         <ref name="model.headLike"/>
      </choice>
   </define>
   <define name="model.divTop">
      <choice>
         <ref name="model.divWrapper"/>
         <ref name="model.divTopPart"/>
      </choice>
   </define>
   <define name="model.frontPart.drama">
      <notAllowed/>
   </define>
   <define name="model.pLike.front">
      <choice>
         <ref name="head"/>
      </choice>
   </define>
   <define name="model.divBottomPart">
      <notAllowed/>
   </define>
   <define name="model.divBottom">
      <choice>
         <ref name="model.divWrapper"/>
         <ref name="model.divBottomPart"/>
      </choice>
   </define>
   <define name="model.imprintPart">
      <choice>
         <ref name="publisher"/>
         <ref name="biblScope"/>
         <ref name="pubPlace"/>
      </choice>
   </define>
   <define name="model.addressLike">
      <choice>
         <ref name="email"/>
         <ref name="affiliation"/>
      </choice>
   </define>
   <define name="model.addressLike_alternation">
      <choice>
         <ref name="email"/>
         <ref name="affiliation"/>
      </choice>
   </define>
   <define name="model.addressLike_sequence">
      <ref name="email"/>
      <ref name="affiliation"/>
   </define>
   <define name="model.addressLike_sequenceOptional">
      <optional>
         <ref name="email"/>
      </optional>
      <optional>
         <ref name="affiliation"/>
      </optional>
   </define>
   <define name="model.addressLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="email"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="affiliation"/>
      </zeroOrMore>
   </define>
   <define name="model.addressLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="email"/>
      </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="idno"/>
         <ref name="model.persNamePart"/>
      </choice>
   </define>
   <define name="model.nameLike_alternation">
      <choice>
         <ref name="model.nameLike.agent_alternation"/>
         <ref name="model.offsetLike_alternation"/>
         <ref name="model.placeStateLike_alternation"/>
         <ref name="idno"/>
         <ref name="model.persNamePart_alternation"/>
      </choice>
   </define>
   <define name="model.nameLike_sequence">
      <ref name="model.nameLike.agent_sequence"/>
      <ref name="model.offsetLike_sequence"/>
      <ref name="model.placeStateLike_sequence"/>
      <ref name="idno"/>
      <ref name="model.persNamePart_sequence"/>
   </define>
   <define name="model.nameLike_sequenceOptional">
      <optional>
         <ref name="model.nameLike.agent_sequenceOptional"/>
      </optional>
      <optional>
         <ref name="model.offsetLike_sequenceOptional"/>
      </optional>
      <optional>
         <ref name="model.placeStateLike_sequenceOptional"/>
      </optional>
      <optional>
         <ref name="idno"/>
      </optional>
      <optional>
         <ref name="model.persNamePart_sequenceOptional"/>
      </optional>
   </define>
   <define name="model.nameLike_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="model.nameLike.agent_sequenceOptionalRepeatable"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="model.offsetLike_sequenceOptionalRepeatable"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="model.placeStateLike_sequenceOptionalRepeatable"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="idno"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="model.persNamePart_sequenceOptionalRepeatable"/>
      </zeroOrMore>
   </define>
   <define name="model.nameLike_sequenceRepeatable">
      <oneOrMore>
         <ref name="model.nameLike.agent_sequenceRepeatable"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="model.offsetLike_sequenceRepeatable"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="model.placeStateLike_sequenceRepeatable"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="idno"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="model.persNamePart_sequenceRepeatable"/>
      </oneOrMore>
   </define>
   <define name="model.global">
      <choice>
         <ref name="model.global.meta"/>
         <ref name="model.milestoneLike"/>
         <ref name="model.noteLike"/>
         <ref name="model.global.edit"/>
         <ref name="figure"/>
      </choice>
   </define>
   <define name="model.biblPart">
      <choice>
         <ref name="model.respLike"/>
         <ref name="model.imprintPart"/>
         <ref name="series"/>
         <ref name="bibl"/>
         <ref name="edition"/>
         <ref name="availability"/>
      </choice>
   </define>
   <define name="model.frontPart">
      <choice>
         <ref name="model.frontPart.drama"/>
      </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.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.qLike"/>
      </choice>
   </define>
   <define name="model.common">
      <choice>
         <ref name="model.divPart"/>
         <ref name="model.inter"/>
      </choice>
   </define>
   <define name="model.phrase">
      <choice>
         <ref name="model.segLike"/>
         <ref name="model.highlighted"/>
         <ref name="model.graphicLike"/>
         <ref name="model.pPart.msdesc"/>
         <ref name="model.pPart.edit"/>
         <ref name="model.ptrLike"/>
         <ref name="model.lPart"/>
         <ref name="model.phrase.xml"/>
         <ref name="model.specDescLike"/>
         <ref name="model.pPart.data"/>
      </choice>
   </define>
   <define name="model.limitedPhrase">
      <choice>
         <ref name="model.hiLike"/>
         <ref name="model.emphLike"/>
         <ref name="model.pPart.msdesc"/>
         <ref name="model.pPart.editorial"/>
         <ref name="model.ptrLike"/>
         <ref name="model.phrase.xml"/>
         <ref name="model.pPart.data"/>
      </choice>
   </define>
   <define name="model.divLike">
      <choice>
         <ref name="div"/>
      </choice>
   </define>
   <define name="model.divGenLike">
      <notAllowed/>
   </define>
   <define name="model.div1Like">
      <notAllowed/>
   </define>
   <define name="model.applicationLike">
      <choice>
         <ref name="application"/>
      </choice>
   </define>
   <define name="model.teiHeaderPart">
      <choice>
         <ref name="encodingDesc"/>
         <ref name="profileDesc"/>
      </choice>
   </define>
   <define name="model.sourceDescPart">
      <notAllowed/>
   </define>
   <define name="model.encodingDescPart">
      <choice>
         <ref name="projectDesc"/>
         <ref name="tagsDecl"/>
         <ref name="appInfo"/>
      </choice>
   </define>
   <define name="model.profileDescPart">
      <choice>
         <ref name="particDesc"/>
         <ref name="langUsage"/>
         <ref name="textClass"/>
      </choice>
   </define>
   <define name="att.source.attributes">
      <ref name="att.source.attribute.source"/>
   </define>
   <define name="att.source.attribute.source">
      <optional>
         <attribute name="source">
            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a pointer to the bibliographical source from which a quotation or citation is drawn.</a:documentation>
            <list>
               <oneOrMore>
                  <ref name="data.pointer"/>
               </oneOrMore>
            </list>
         </attribute>
      </optional>
   </define>
   <define name="model.resourceLike">
      <notAllowed/>
   </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_jtei-p-abstractModel-p-constraint-1">
            <rule context="tei:p">
               <report xmlns:tei="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:eg="http://www.tei-c.org/ns/Examples"
                       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                       test="(ancestor::tei:p or ancestor::tei:ab)          and not(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 contain other paragraphs or ab elements.
      </report>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-p-abstractModel-structure-l-constraint-2">
            <rule context="tei:p">
               <report xmlns:tei="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:eg="http://www.tei-c.org/ns/Examples"
                       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                       test="ancestor::tei:l[not(.//tei:note//tei:p[. = current()])]">
        Abstract model violation: Lines may not contain higher-level structural elements such as div, p, or ab.
      </report>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="foreign">
      <element name="foreign">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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">(Emphasis (italicization)) The emph element is used for emphasized text, and will be rendered in italics. [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"/>
         <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"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-quote-jtei.sch-core-constraint-2">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:quote">
                  <sch:assert test="id(substring-after(@source, '#'))/(self::tei:ref[@type eq 'bibl']|self::tei:bibl[ancestor::tei:body])">
                    <sch:name/> must be accompanied by a bibliographic reference (ref[@type="bibl"]) or a bibliographic description in the running text.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.source.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.attributes"/>
         <ref name="att.source.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="cit">
      <element name="cit">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(cited block quotation) contains a quotation from some other document, together with a bibliographic reference to its source. In jTEI, this is used only for block quotations, and it will be rendered as a block. For inline quotations, use the quote element and link it to a reference using source. [3.3.3. Quotation 4.3.1. Grouped Texts 9.3.5.1. Examples]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="quote"/>
               <ref name="model.biblLike"/>
               <ref name="model.ptrLike"/>
            </choice>
         </oneOrMore>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-cit-jtei.sch-cit-constraint-3">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:cit"
                      role="warning">
                  <sch:assert test="tei:ref">
                    <sch:name/> is normally expected to have a bibliographic reference (ref[@type="bibl"]). Please make sure you intended not to add one here.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <ref name="att.global.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">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 brief description of the object documented by its parent element, including its intended usage, purpose, or application where this is appropriate. [22.4.1. Description of Components]</a:documentation>
         <ref name="macro.limitedContent"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="term">
      <element name="term">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a single-word, multi-word, or symbolic designation which is regarded as a technical term. [3.3.4. Terms, Glosses, Equivalents, and Descriptions]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <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">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.4.3. Additions, Deletions, and Omissions]</a:documentation>
         <zeroOrMore>
            <choice>
               <ref name="model.descLike"/>
               <ref name="model.certLike"/>
            </choice>
         </zeroOrMore>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-gap-jtei.sch-gap-constraint-4">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:gap-period">
                  <sch:report test="following-sibling::node()[1][self::text()] and starts-with(following-sibling::node()[1], '.')">
                    A <sch:name/> element should follow a period rather than precede it when an ellipsis follows the end of a sentence.
                  </sch:report>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-gap-jtei.sch-gap-ws-constraint-5">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:gap">
                  <sch:report test="preceding-sibling::node()[1][self::text()][matches(., '\.\s+$')]">
                    A <sch:name/> should follow a period directly, without preceding whitespace.
                  </sch:report>
                </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.attributes"/>
         <optional>
            <attribute name="reason">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the reason for omission. Sample values include sampling, inaudible, irrelevant, cancelled.</a:documentation>
               <list>
                  <oneOrMore>
                     <ref name="data.word"/>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="hand">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">in the case of text omitted from the transcription because of deliberate deletion by an identifiable hand, indicates the hand which made the deletion.</a:documentation>
               <ref name="data.pointer"/>
            </attribute>
         </optional>
         <optional>
            <attribute name="agent">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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; 2] mildew; 3] smoke</a:documentation>
               <ref name="data.enumerated"/>
            </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.5.1. Referring Strings]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.datable.w3c.attribute.when"/>
         <ref name="att.datable.w3c.attribute.notBefore"/>
         <ref name="att.datable.w3c.attribute.from"/>
         <ref name="att.datable.w3c.attribute.to"/>
         <ref name="att.editLike.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.5.2. Addresses]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="num">
      <element name="num">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(number) contains a number, written in any form. [3.5.3. Numbers and
Measures]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the type of numeric value. In jTEI, we particularly use num[@type='ordinal'] for e.g. 21st or 2nd; in rendering, this results in the non-numeric suffix to the number being output as superscript. Note, however, that ordinals for centuries should be spelled out, not written using digits (nineteenth century, not 19th century).
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="Name"/>
               </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>
               <ref name="data.numeric"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="date">
      <element name="date">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a date in any format. [3.5.4. Dates and Times 2.2.4. Publication, Distribution, Licensing, etc. 2.6. The Revision Description 3.11.2.4. Imprint, Size of a Document, and Reprint Information 15.2.3. The Setting Description 13.3.6. 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.editLike.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.5.5. Abbreviations and Their Expansions]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <ref name="att.source.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">allows the encoder to classify the abbreviation according to some convenient typology.
Sample values include: 1] suspension; 2] contraction; 3] brevigraph; 4] superscription; 5] acronym; 6] title; 7] organization; 8] geographic</a:documentation>
               <ref name="data.enumerated"/>
            </attribute>
         </optional>
         <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.6. Simple Links and Cross-References 16.1. Links]</a:documentation>
         <empty/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-ptr-jtei.sch-ptr-multipleTargets-constraint-6">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:ptr[not(@type='crossref')]">
                  <sch:report test="count(tokenize(normalize-space(@target), '\s+')) &gt; 1">
                    Multiple targets are only allowed for <sch:name/>[@type='crossref'].
                  </sch:report>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-ptr-ptrAtts-constraint-6">
            <rule context="tei:ptr">
               <report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                       xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                       xmlns:eg="http://www.tei-c.org/ns/Examples"
                       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                       test="@target and @cRef">Only one of the
attributes @target and @cRef may be supplied on <name/>.</report>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <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>
                  <ref name="data.pointer"/>
               </oneOrMore>
            </list>
         </attribute>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes the element in some sense, using any convenient classification scheme or typology.</a:documentation>
               <choice>
                  <value>crossref</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(A cross-reference (reference to another part of the article).) To link to another part of your article, use , and point to the xml:id value of the target location: . The ptr element will be expanded to create an appropriate link to the target location.</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="ref">
      <element name="ref">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reference) defines a reference to another location, possibly modified by additional text or comment. [3.6. Simple Links and Cross-References 16.1. Links]</a:documentation>
         <ref name="macro.paraContent"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-ref-jtei.sch-ref-multipleTargets-constraint-7">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:ref">
                  <sch:report test="count(tokenize(normalize-space(@target), '\s+')) &gt; 1">
                    <sch:name/> with multiple targets is not supported.
                  </sch:report>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-ref-jtei.sch-biblref-parentheses-constraint-8">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:ref[@type eq 'bibl']">
                  <sch:assert test="not(matches(., '^\(.*\)$'))">
                    Parentheses are not part of bibliographic references. Please move them out of <sch:name/>.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-ref-jtei.sch-biblref-target-constraint-9">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:ref[@type eq 'bibl']">
                  <sch:assert test="id(substring-after(@target, '#'))/(self::tei:bibl|self::tei:person[ancestor::tei:particDesc/parent::tei:profileDesc])">
                    A bibliographic reference must point to an entry in the bibliography.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-ref-jtei.sch-biblref-type-constraint-10">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:ref[id(substring-after(@target, '#'))/self::tei:bibl]">
                  <sch:assert test="@type eq 'bibl'">
                    A bibliographic reference must be typed as @type="bibl".
                  </sch:assert>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-ref-refAtts-constraint-8">
            <rule context="tei:ref">
               <report xmlns:rng="http://relaxng.org/ns/structure/1.0"
                       xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                       xmlns:eg="http://www.tei-c.org/ns/Examples"
                       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                       test="@target and @cRef">Only one of the
	attributes @target' and @cRef' may be supplied on <name/>
               </report>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <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>
                  <ref name="data.pointer"/>
               </oneOrMore>
            </list>
         </attribute>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes the element in some sense, using any convenient classification scheme or typology.</a:documentation>
               <choice>
                  <value>crossref</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(A cross-reference (reference to another part of the article).) To link to another part of your article, use , and point to the xml:id value of the target location: .</a:documentation>
                  <value>bibl</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(A bibliographic reference (reference to an entry in the bibliography).) To link to a bibliographic description in the bibliography, use , and point to the xml:id value of the target location: .</a:documentation>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="list">
      <element name="list">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains any sequence of items organized as a list. [3.7. Lists]</a:documentation>
         <group>
            <zeroOrMore>
               <choice>
                  <group>
                     <ref name="model.divTop"/>
                  </group>
                  <group>
                     <ref name="model.global"/>
                  </group>
               </choice>
            </zeroOrMore>
            <choice>
               <oneOrMore>
                  <ref name="item"/>
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
               </oneOrMore>
               <group>
                  <oneOrMore>
                     <ref name="label"/>
                     <zeroOrMore>
                        <ref name="model.global"/>
                     </zeroOrMore>
                     <ref name="item"/>
                     <zeroOrMore>
                        <ref name="model.global"/>
                     </zeroOrMore>
                  </oneOrMore>
               </group>
            </choice>
            <zeroOrMore>
               <group>
                  <group>
                     <ref name="model.divBottom"/>
                  </group>
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
               </group>
            </zeroOrMore>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-list-gloss-list-must-have-labels-constraint-11">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      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.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.rendition"/>
         <ref name="att.global.responsibility.attribute.cert"/>
         <ref name="att.global.responsibility.attribute.resp"/>
         <optional>
            <attribute name="rend">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(rendition) describes the way the list should be rendered. </a:documentation>
               <list>
                  <oneOrMore>
                     <choice>
                        <value>bulleted</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(A bulleted list) Bulleted lists will appear with each item preceded by a leading dot.</a:documentation>
                        <value>inline</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(An inline list) Inline lists appear within a paragraph of ordinary text; list items do not start on a new line, but follow immediately from the preceding text or item. The value "inline" may be combined with another value; for example, "ordered inline" means that the list will be rendered inline, but each item will be preceded by a number in parentheses: (1) first item (2) second item, and so on.</a:documentation>
                        <value>ordered</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(A numbered list) Items in a numbered list will be preceded by a number. If the list is inline, then the number will be enclosed in parentheses, but if it is a block-level list (the default), the number will be followed by a period. </a:documentation>
                        <value>simple</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(A simple list (no bullets or numbers)) Items in a simple list will be rendered with no bullet or preceding number at all.</a:documentation>
                     </choice>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes the nature of the items in the list.</a:documentation>
               <choice>
                  <value>gloss</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="item">
      <element name="item">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains one component of a list. [3.7. Lists 2.6. The Revision Description]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="label">
      <element name="label">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains any label or heading used to identify part of a text, typically but not exclusively in a list or glossary. [3.7. Lists]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="head">
      <element name="head">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(heading) contains any type of heading, for example the title of a section, or the heading of a list, glossary, manuscript description, etc. [4.2.1. Headings and Trailers]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="model.phrase"/>
               <ref name="model.inter"/>
               <ref name="model.lLike"/>
               <ref name="model.global"/>
            </choice>
         </zeroOrMore>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-head-jtei.sch-head-number-constraint-12">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:head">
                  <sch:report test="matches(., '^\s*((figure|table|example|section) )?\d', 'i')">
                    Headings are numbered and labeled automatically, please remove the hard-coded label from the text.
                  </sch:report>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-head-jtei.sch-figure-head-constraint-13">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:figure/tei:head">
                  <sch:assert test="@type = ('legend', 'license')">
                    Figure titles must have a type 'legend' or 'license'.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the type of heading. In jTEI, we only use this attribute in the context of a head element in figure, where it must have one of two values.</a:documentation>
               <ref name="data.enumerated"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="note">
      <element name="note">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a note or annotation. [3.8.1. Notes and Simple Annotation 2.2.6. The Notes Statement 3.11.2.8. Notes and Statement of Language 9.3.5.4. Notes within Entries]</a:documentation>
         <ref name="macro.specialPara"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-note-jtei.sch-note-constraint-14">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:note">
                  <sch:assert test="not(following-sibling::text()[1][matches(., '^[,\.:;!?)\]]')])">
                    Footnotes should follow punctuation marks, not precede them. Place 
                    your &lt;note&gt; element after the punctuation mark.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-note-jtei.sch-note-blocks-constraint-15">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:note">
                  <sch:report test=".//(tei:cit|tei:table|tei:list[not(tokenize(@rend, '\s+')[. eq 'inline'])]|tei:figure|eg:egXML|tei:eg)">
                    No block-level elements are allowed inside note.
                  </sch:report>
                </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.source.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="graphic">
      <element name="graphic">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the location of an inline graphic, illustration, or figure. [3.9. Graphics and Other Non-textual Components]</a:documentation>
         <zeroOrMore>
            <ref name="model.descLike"/>
         </zeroOrMore>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-graphic-jtei.sch-graphic-dimensions-constraint-16">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:graphic">
                  <sch:assert test="matches(@width, '\d+px') and matches(@height, '\d+px')">
                    Width and height in pixels must be specified for any <sch:name/>.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-graphic-jtei.sch-graphic-context-constraint-17">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:graphic">
                  <sch:assert test="parent::tei:figure">
                    <sch:name/> may only occur inside figure.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.media.attributes"/>
         <ref name="att.resourced.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="lb">
      <element name="lb">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(line break) marks the start of a new (typographic) line in some edition or version of a text. [3.10.3. Milestone
Elements 7.2.5. Speech Contents]</a:documentation>
         <empty/>
         <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.11.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="biblScope"/>
               <ref name="idno"/>
               <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">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.11.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-author-jtei.sch-author-constraint-18">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:titleStmt/tei:author">
                  <sch:assert test="tei:name and tei:affiliation and tei:email">
                    Author information in the &lt;titleStmt&gt; must include &lt;name&gt;, &lt;affiliation&gt; and &lt;email&gt;.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <ref name="att.global.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.11.2.2. Titles, Authors, and Editors]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <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>
                     <choice>
                        <value>translator</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                        <value>guest</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                        <value>chief</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                        <value>managing</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                        <value>technical</value>
                        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                     </choice>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="title">
      <element name="title">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a title for any kind of work. [3.11.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"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies the title according to some convenient typology.</a:documentation>
               <choice>
                  <value>main</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(The main title of your article.) Academic articles often have a main title followed by a subtitle (sometimes with a colon separating them). If you have two such components in your article title, then in the titleStmt, use  and  to encode the two components of your title.</a:documentation>
                  <value>sub</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(The subtitle of your article.) Academic articles often have a main title followed by a subtitle (sometimes with a colon separating them). If you have two such components in your article title, then in the titleStmt, use  and  to encode the two components of your title.</a:documentation>
               </choice>
            </attribute>
         </optional>
         <optional>
            <attribute name="level">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the bibliographic level for a title, that is, whether it identifies an article, book, journal, series, or unpublished material.</a:documentation>
               <choice>
                  <value>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="publisher">
      <element name="publisher">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the name of the organization responsible for the publication or distribution of a bibliographic item. [3.11.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"/>
         <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.11.2.5. Scopes and Ranges in Bibliographic Citations]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <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.</a:documentation>
               <choice>
                  <value>chapter</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                  <value>issue</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                  <value>page</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                  <value>part</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
                  <value>volume</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/>
               </choice>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="pubPlace">
      <element name="pubPlace">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(publication place) contains the name of the place where a bibliographic item was published. [3.11.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="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.11.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>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-bibl-jtei.sch-bibl-id-constraint-19">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:back/tei:div[@type eq 'bibliography']//tei:bibl"
                      role="warning">
                  <sch:assert test="@xml:id">
                    A bibliographic entry should have a unique value for @xml:id.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-bibl-jtei.sch-bibl-orphan-constraint-20">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:back/tei:div[@type eq 'bibliography']//tei:bibl"
                      role="warning">
                  <sch:let name="currId" value="@xml:id"/>
                  <sch:assert test="some $i in //tei:ref[@type='bibl'] satisfies tokenize($i/@target, '\s+')[replace(., '#', '') = $currId]">
                    This bibliographic entry is an orphan: no ref[@type="bibl"] references to it occur in the text.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <ref name="att.global.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.11.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>
            <oneOrMore>
               <choice>
                  <ref name="model.biblLike"/>
                  <ref name="model.milestoneLike"/>
               </choice>
            </oneOrMore>
            <zeroOrMore>
               <empty/>
            </zeroOrMore>
         </group>
         <ref name="att.global.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"/>
               </choice>
            </oneOrMore>
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="table">
      <element name="table">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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>
                  <ref name="row"/>
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
               </oneOrMore>
               <oneOrMore>
                  <group>
                     <ref name="model.graphicLike"/>
                  </group>
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
               </oneOrMore>
            </choice>
            <zeroOrMore>
               <group>
                  <ref name="model.divBottom"/>
               </group>
               <zeroOrMore>
                  <ref name="model.global"/>
               </zeroOrMore>
            </zeroOrMore>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-table-jtei.sch-table-constraint-21">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:table">
                  <sch:assert test="not(ancestor::tei:list)">
                    No tables are are allowed inside lists.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="rows">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the number of rows in the table.</a:documentation>
               <ref name="data.count"/>
            </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>
               <ref name="data.count"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="row">
      <element name="row">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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">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="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 a graphic illustration, or a block of example code. Figure must contain either graphic, egXML (for example XML code) or eg (for non-XML code), and a mandatory head element containing the caption for the figure. Inline code examples may be provided through egXML and eg without the figure wrapper. [14.4. Specific Elements for Graphic Images]</a:documentation>
         <choice>
            <ref name="graphic"/>
            <ref name="egXML"/>
            <ref name="eg"/>
         </choice>
         <oneOrMore>
            <ref name="head"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="teiHeader">
      <element name="teiHeader">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(TEI header) supplies the descriptive and declarative information making up an electronic title page for every TEI-conformant document. [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"/>
               <ref name="publicationStmt"/>
               <optional>
                  <ref name="seriesStmt"/>
               </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. In jTEI, this must include a title and an author element for each author of the paper, which in turn must include name, affiliation and email. [2.2.1. The Title Statement 2.2. The File Description]</a:documentation>
         <group>
            <oneOrMore>
               <ref name="title"/>
            </oneOrMore>
            <oneOrMore>
               <ref name="author"/>
            </oneOrMore>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-titleStmt-jtei.sch-title-constraint-22">
            <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude"
                      xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:titleStmt">
                  <sch:assert test="tei:title[@type = 'main']">
                    A title of type "main" is required in <sch:name/>.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <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">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="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>
                  <group>
                     <ref name="model.publicationStmtPart.agency"/>
                  </group>
                  <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="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. [2.2.4. Publication, Distribution, Licensing, etc. 2.2.5. The Series Statement 3.11.2.4. Imprint, Size of a Document, and Reprint Information]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="model.gLike"/>
               <ref name="idno"/>
            </choice>
         </zeroOrMore>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-idno-jtei.sch-doi-order-constraint-23">
            <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude"
                      xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:back/tei:div[@type eq 'bibliography']//tei:idno[@type eq 'doi']">
                  <sch:report test="following-sibling::tei:ref">
                    If a bibliographic entry has a formal DOI code, it should be placed at the very end of the bibliographic description.
                  </sch:report>
                </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">categorizes the identifier, for example as an ISBN, Social Security number, etc.</a:documentation>
               <ref name="data.enumerated"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="availability">
      <element name="availability">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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"/>
         <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"/>
                  </choice>
               </zeroOrMore>
               <zeroOrMore>
                  <choice>
                     <ref name="idno"/>
                     <ref name="biblScope"/>
                  </choice>
               </zeroOrMore>
            </group>
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="sourceDesc">
      <element name="sourceDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(source description) describes the source from which an electronic text was derived or generated, typically a bibliographic description in the case of a digitized text, or a phrase such as "born digital" for a text which has no previous existence. [2.2.7. The Source Description]</a:documentation>
         <choice>
            <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"/>
         <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>
         <group>
            <oneOrMore>
               <choice>
                  <ref name="model.encodingDescPart"/>
                  <ref name="model.pLike"/>
               </choice>
            </oneOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <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"/>
         <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>
         </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 text, or represent only a subset.</a:documentation>
               <ref name="data.truthValue"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="rendition">
      <element name="rendition">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-rendition-jtei.sch-rendition-constraint-24">
            <sch:rule xmlns:xi="http://www.w3.org/2001/XInclude"
                      xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:rendition">
                  <sch:assert test="some $i in //@rendition satisfies tokenize($i, '\s+')[replace(., '#', '') = current()/@xml:id]">
                    Please remove all <sch:name/> definitions that aren't actually being used in the article.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <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"/>
               </choice>
            </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 scheme attribute.</a:documentation>
               <ref name="data.text"/>
            </attribute>
         </optional>
         <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.10. 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.10. 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.datable.w3c.attribute.when"/>
         <ref name="att.datable.w3c.attribute.notBefore"/>
         <ref name="att.datable.w3c.attribute.from"/>
         <ref name="att.datable.w3c.attribute.to"/>
         <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>
            <ref name="data.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>
            <ref name="data.versionNumber"/>
         </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>
         <group>
            <zeroOrMore>
               <ref name="model.profileDescPart"/>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="langUsage">
      <element name="langUsage">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(language usage) describes the languages, sublanguages, registers, dialects, etc. represented within a text. [2.4.2. Language Usage 2.4. The Profile Description 15.3.2. Declarable Elements]</a:documentation>
         <oneOrMore>
            <ref name="language"/>
         </oneOrMore>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="language">
      <element name="language">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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 BCP 47 which is used to identify the language documented by this element, and which is referenced by the global xml:lang attribute.</a:documentation>
            <ref name="data.language"/>
         </attribute>
         <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"/>
            </choice>
         </zeroOrMore>
         <ref name="keywords"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="keywords">
      <element name="keywords">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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 identifies the classification scheme within which the set of categories concerned is defined, for example by a taxonomy element, or by some other resource.</a:documentation>
               <ref name="data.pointer"/>
            </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 for example by a taxonomy element, or some other resource.</a:documentation>
            <ref name="data.pointer"/>
         </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 taxonomy element, or by some other resource.</a:documentation>
               <ref name="data.pointer"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="revisionDesc">
      <element name="revisionDesc">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(revision description) summarizes the revision history for a file. [2.6. The Revision Description 2.1.1. The TEI Header and Its Components]</a:documentation>
         <choice>
            <ref name="list"/>
            <ref name="listChange"/>
            <oneOrMore>
               <ref name="change"/>
            </oneOrMore>
         </choice>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="change">
      <element name="change">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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. Changes]</a:documentation>
         <ref name="macro.specialPara"/>
         <ref name="att.ascribed.attributes"/>
         <ref name="att.datable.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">points to one or more elements that belong to this change.</a:documentation>
               <list>
                  <oneOrMore>
                     <ref name="data.pointer"/>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <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. Changes]</a:documentation>
         <oneOrMore>
            <choice>
               <ref name="listChange"/>
               <ref name="change"/>
            </choice>
         </oneOrMore>
         <ref name="att.global.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 change elements is to be considered significant or not</a:documentation>
               <ref name="data.truthValue"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <define name="model.persNamePart">
      <choice>
         <ref name="surname"/>
         <ref name="forename"/>
         <ref name="roleName"/>
      </choice>
   </define>
   <define name="model.persNamePart_alternation">
      <choice>
         <ref name="surname"/>
         <ref name="forename"/>
         <ref name="roleName"/>
      </choice>
   </define>
   <define name="model.persNamePart_sequence">
      <ref name="surname"/>
      <ref name="forename"/>
      <ref name="roleName"/>
   </define>
   <define name="model.persNamePart_sequenceOptional">
      <optional>
         <ref name="surname"/>
      </optional>
      <optional>
         <ref name="forename"/>
      </optional>
      <optional>
         <ref name="roleName"/>
      </optional>
   </define>
   <define name="model.persNamePart_sequenceOptionalRepeatable">
      <zeroOrMore>
         <ref name="surname"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="forename"/>
      </zeroOrMore>
      <zeroOrMore>
         <ref name="roleName"/>
      </zeroOrMore>
   </define>
   <define name="model.persNamePart_sequenceRepeatable">
      <oneOrMore>
         <ref name="surname"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="forename"/>
      </oneOrMore>
      <oneOrMore>
         <ref name="roleName"/>
      </oneOrMore>
   </define>
   <define name="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.w3c.attribute.when"/>
         <ref name="att.datable.w3c.attribute.notBefore"/>
         <ref name="att.datable.w3c.attribute.from"/>
         <ref name="att.datable.w3c.attribute.to"/>
         <ref name="att.editLike.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="surname">
      <element name="surname">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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"/>
         <empty/>
      </element>
   </define>
   <define name="forename">
      <element name="forename">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a forename, given or baptismal name. [13.2.1. Personal Names]</a:documentation>
         <ref name="macro.phraseSeq"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="roleName">
      <element name="roleName">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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"/>
         <empty/>
      </element>
   </define>
   <define name="affiliation">
      <element name="affiliation">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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.w3c.attribute.when"/>
         <ref name="att.datable.w3c.attribute.notBefore"/>
         <ref name="att.datable.w3c.attribute.from"/>
         <ref name="att.datable.w3c.attribute.to"/>
         <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>
            <oneOrMore>
               <choice>
                  <ref name="model.personLike"/>
                  <ref name="listPerson"/>
               </choice>
            </oneOrMore>
            <zeroOrMore>
               <empty/>
            </zeroOrMore>
         </group>
         <ref name="att.global.attributes"/>
         <ref name="att.typed.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="person">
      <element name="person">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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"/>
               </choice>
            </zeroOrMore>
         </choice>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.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>
                     <ref name="data.enumerated"/>
                  </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>
                     <ref name="data.sex"/>
                  </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>
               <ref name="data.enumerated"/>
            </attribute>
         </optional>
         <empty/>
      </element>
   </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>
         <ref name="data.name"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-att-jtei.sch-att-constraint-25">
            <sch:rule xmlns:s="http://www.ascc.net/xml/schematron"
                      xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:att">
                  <sch:assert test="not(matches(., '^@'))">
                    Attribute delimiters are not allowed for <sch:name/>: they are completed at processing time via XSLT.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <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>
               <ref name="data.word"/>
            </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.4.4. Element Specifications 22.4.5. 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) contains a single well-formed XML fragment demonstrating the use of some XML element or attribute, in which the egXML element itself functions as the root element. [22.1.1. Phrase Level Terms]</a:documentation>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="macro.anyXML"/>
            </choice>
         </zeroOrMore>
         <ref name="att.global.attributes"/>
         <ref name="att.source.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.4.4. Element Specifications]</a:documentation>
         <ref name="data.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>
               <ref name="data.enumerated"/>
            </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. ident 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"/>
         <empty/>
      </element>
   </define>
   <define name="tag">
      <element name="tag">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-tag-jtei.sch-tag-constraint-26">
            <sch:rule xmlns:s="http://www.ascc.net/xml/schematron"
                      xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:tag">
                  <sch:assert test="not(matches(., '^[&lt;!?-]|[&gt;/?\-]$'))">
                    Tag delimiters such as angle brackets and tag-closing slashes are not allowed for <sch:name/>: they are completed at processing time via XSLT.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <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">a 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>
               <ref name="data.enumerated"/>
            </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.4.5. Attribute List Specification]</a:documentation>
         <text/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-val-jtei.sch-att-constraint-27">
            <sch:rule xmlns:s="http://www.ascc.net/xml/schematron"
                      xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:val">
                  <sch:assert test="not(matches(., concat('^', $quotes, '|', $quotes, '$')))">
                    Attribute value delimiters are not allowed for <sch:name/>: they are completed at processing time via XSLT.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <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, containing a single TEI header, a single text, one or more members of the model.resourceLike class, or a combination of these. A series of TEI elements may be combined together to form a teiCorpus element. [4. Default Text Structure 15.1. Varieties of Composite Text]</a:documentation>
         <group>
            <ref name="teiHeader"/>
            <choice>
               <group>
                  <oneOrMore>
                     <ref name="model.resourceLike"/>
                  </oneOrMore>
                  <optional>
                     <ref name="text"/>
                  </optional>
               </group>
               <ref name="text"/>
            </choice>
         </group>
         <ns xmlns="http://purl.oclc.org/dsdl/schematron"
             prefix="tei"
             uri="http://www.tei-c.org/ns/1.0"/>
         <ns xmlns="http://purl.oclc.org/dsdl/schematron"
             prefix="xs"
             uri="http://www.w3.org/2001/XMLSchema"/>
         <ns xmlns="http://purl.oclc.org/dsdl/schematron"
             prefix="rng"
             uri="http://relaxng.org/ns/structure/1.0"/>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="text">
      <element name="text">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(text) contains the complete text of the article. Must include a front containing an abstract, a body containing the main text, and a back containing the bibliography and any appendices. [4. Default Text Structure 15.1. Varieties of Composite Text]</a:documentation>
         <group>
            <zeroOrMore>
               <ref name="model.global"/>
            </zeroOrMore>
            <optional>
               <ref name="front"/>
               <zeroOrMore>
                  <ref name="model.global"/>
               </zeroOrMore>
            </optional>
            <choice>
               <ref name="body"/>
            </choice>
            <zeroOrMore>
               <ref name="model.global"/>
            </zeroOrMore>
            <optional>
               <ref name="back"/>
               <zeroOrMore>
                  <ref name="model.global"/>
               </zeroOrMore>
            </optional>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-text-jtei.sch-article-keywords-constraint-28">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:text[not(tei:body/tei:div[@type = ('editorialIntroduction')])]">
                  <sch:assert test="parent::tei:TEI/tei:teiHeader/tei:profileDesc/tei:textClass/tei:keywords">
                    An article must have a keyword list in the header.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-text-jtei.sch-article-abstract-constraint-29">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:text[not(tei:body/tei:div[@type = ('editorialIntroduction')])]">
                  <sch:assert test="tei:front/tei:div[@type='abstract']">
                    An article must have a front section with an abstract.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-text-jtei.sch-article-back-constraint-30">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:text[not(tei:body/tei:div[@type = ('editorialIntroduction')])]">
                  <sch:assert test="tei:back/tei:div[@type='bibliography']/tei:listBibl">
                    An article must have a back section with a bibliography.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <ref name="att.global.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>
               <choice>
                  <ref name="model.divTop"/>
                  <ref name="model.global"/>
               </choice>
            </zeroOrMore>
            <optional>
               <choice>
                  <group>
                     <oneOrMore>
                        <choice>
                           <ref name="model.divLike"/>
                           <ref name="model.divGenLike"/>
                        </choice>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </oneOrMore>
                  </group>
                  <group>
                     <oneOrMore>
                        <group>
                           <ref name="model.common"/>
                        </group>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </oneOrMore>
                     <zeroOrMore>
                        <choice>
                           <ref name="model.divLike"/>
                           <ref name="model.divGenLike"/>
                        </choice>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </zeroOrMore>
                  </group>
               </choice>
               <zeroOrMore>
                  <group>
                     <ref name="model.divBottom"/>
                  </group>
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
               </zeroOrMore>
            </optional>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-body-jtei.sch-body-constraint-31">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:body[child::tei:div[not(@type=('editorialIntroduction'))]]">
                  <sch:assert test="count(child::tei:div) gt 1">
                    If <sch:name/> contains a div, and that div is not an editorial introduction, then there should be 
                    more than one div. Rather than using only a single div, you may place the content directly
                    in the <sch:name/> element.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <ref name="att.global.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>
               <choice>
                  <group>
                     <oneOrMore>
                        <choice>
                           <ref name="model.divLike"/>
                           <ref name="model.divGenLike"/>
                        </choice>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </oneOrMore>
                  </group>
                  <group>
                     <oneOrMore>
                        <group>
                           <ref name="model.common"/>
                        </group>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </oneOrMore>
                     <zeroOrMore>
                        <choice>
                           <ref name="model.divLike"/>
                           <ref name="model.divGenLike"/>
                        </choice>
                        <zeroOrMore>
                           <ref name="model.global"/>
                        </zeroOrMore>
                     </zeroOrMore>
                  </group>
               </choice>
               <zeroOrMore>
                  <group>
                     <ref name="model.divBottom"/>
                  </group>
                  <zeroOrMore>
                     <ref name="model.global"/>
                  </zeroOrMore>
               </zeroOrMore>
            </optional>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-div-jtei.sch-divtypes-front-constraint-32">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:div[@type = ('abstract', 'acknowledgements')]">
                  <sch:assert test="parent::tei:front">
                    Abstracts (<sch:name/>[@type="abstract"]) and acknowledgements (<sch:name/>[@type="acknowledgements"]) may only occur inside front.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-div-jtei.sch-divtypes-front2-constraint-33">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:front/tei:div">
                  <sch:assert test="@type=('abstract', 'acknowledgements')">
                    Only abstracts (div[@type="abstract"]) and acknowledgements (div[@type="acknowledgements"]) may appear in the &lt;front&gt;.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-div-jtei.sch-divtypes-back-constraint-34">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:div[@type = ('bibliography', 'appendix')]">
                  <sch:assert test="parent::tei:back">
                    Bibliography (<sch:name/>[@type="bibliography"]) and appendices (<sch:name/>[@type="appendix"]) may only occur inside back.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-div-jtei.sch-divtypes-body-constraint-35">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:div[@type = ('editorialIntroduction')]">
                  <sch:assert test="parent::tei:body">
                    An editorial introduction (<sch:name/>[@type="editorialIntroduction"]) may only occur inside body.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-div-jtei.sch-div-head-constraint-36">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:div[not(@type = ('editorialIntroduction', 'bibliography', 'abstract', 'acknowledgements'))]">
                  <sch:assert test="tei:head">
                    A <sch:name/> must contain a head.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-div-abstractModel-structure-l-constraint-12">
            <rule context="tei:div">
               <report xmlns:tei="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:eg="http://www.tei-c.org/ns/Examples"
                       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                       test="ancestor::tei:l">
        Abstract model violation: Lines may not contain higher-level structural elements such as div.
      </report>
            </rule>
         </pattern>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-div-abstractModel-structure-p-constraint-13">
            <rule context="tei:div">
               <report xmlns:tei="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:eg="http://www.tei-c.org/ns/Examples"
                       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                       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.
      </report>
            </rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.divLike.attributes"/>
         <optional>
            <attribute name="type">
               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes the element in some sense, using any convenient classification scheme or typology.</a:documentation>
               <choice>
                  <value>abstract</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Abstract for the article, appearing inside &lt;front&gt;.) Every article must include an abstract, consisting of one or two paragraphs. This appears in the &lt;front&gt; element and may not appear anywhere else.</a:documentation>
                  <value>acknowledgements</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Acknowledgements for the article, appearing inside &lt;front&gt;.) If an article includes a section for acknowledgements (for funders, supporters, etc.), it should be as brief as possible, and must appear in the &lt;front&gt; element and nowhere else.</a:documentation>
                  <value>appendix</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Appendix to the article, appearing inside &lt;back&gt;.) Any appendices must appear in the &lt;back&gt; of the article, following the bibliography.</a:documentation>
                  <value>bibliography</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Bibliography, appearing inside &lt;back&gt;.) Every article must include a bibliography, which appears as the first component of the &lt;back&gt; element, followed by any appendices.</a:documentation>
                  <value>editorialIntroduction</value>
                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Editorial introduction, appearing inside &lt;body&gt;.) An editorial introduction to an issue must contain a &lt;div type="editorialIntroduction"&gt;, which must appear in the &lt;body&gt; element and may not appear anywhere else.</a:documentation>
               </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, 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>
            <group>
               <zeroOrMore>
                  <choice>
                     <ref name="model.frontPart"/>
                     <ref name="model.pLike"/>
                     <ref name="model.pLike.front"/>
                     <ref name="model.global"/>
                  </choice>
               </zeroOrMore>
            </group>
            <optional>
               <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>
               <group>
                  <optional>
                     <group>
                        <ref name="model.divBottom"/>
                     </group>
                     <zeroOrMore>
                        <choice>
                           <ref name="model.divBottom"/>
                           <ref name="model.global"/>
                        </choice>
                     </zeroOrMore>
                  </optional>
               </group>
            </optional>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-front-jtei.sch-front-abstract-constraint-37">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:front">
                  <sch:assert test="tei:div[@type='abstract']">
                    <sch:name/> must have an abstract (div[@type='abstract']).
                  </sch:assert>
                </sch:rule>
         </pattern>
         <ref name="att.global.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>
            <group>
               <optional>
                  <choice>
                     <group>
                        <group>
                           <ref name="model.div1Like"/>
                        </group>
                        <zeroOrMore>
                           <choice>
                              <ref name="model.frontPart"/>
                              <ref name="model.div1Like"/>
                              <ref name="model.global"/>
                           </choice>
                        </zeroOrMore>
                     </group>
                     <group>
                        <group>
                           <ref name="model.divLike"/>
                        </group>
                        <zeroOrMore>
                           <choice>
                              <ref name="model.frontPart"/>
                              <ref name="model.divLike"/>
                              <ref name="model.global"/>
                           </choice>
                        </zeroOrMore>
                     </group>
                  </choice>
               </optional>
            </group>
            <group>
               <optional>
                  <group>
                     <ref name="model.divBottomPart"/>
                  </group>
                  <zeroOrMore>
                     <choice>
                        <ref name="model.divBottomPart"/>
                        <ref name="model.global"/>
                     </choice>
                  </zeroOrMore>
               </optional>
            </group>
         </group>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-back-jtei.sch-back-constraint-38">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:back">
                  <sch:assert test="tei:div[@type='bibliography']/tei:listBibl">
                    <sch:name/> must have a bibliography (div[@type="bibliography"]), which must be organized inside a listBibl element.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <empty/>
      </element>
   </define>
   <define name="supplied">
      <element name="supplied">
         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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"/>
         <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
                  id="tei_jtei-supplied-jtei.sch-supplied-constraint-39">
            <sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
                      xmlns="http://www.tei-c.org/ns/1.0"
                      xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                      xmlns:eg="http://www.tei-c.org/ns/Examples"
                      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                      context="tei:supplied">
                  <sch:assert test="not(matches(., '^\[|\]$'))">
                    Please remove square brackets from <sch:name/>: they are completed at processing time via XSLT.
                  </sch:assert>
                </sch:rule>
         </pattern>
         <ref name="att.global.attributes"/>
         <ref name="att.editLike.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>
                     <ref name="data.word"/>
                  </oneOrMore>
               </list>
            </attribute>
         </optional>
         <empty/>
      </element>
   </define>
   <start>
      <choice>
         <ref name="TEI"/>
      </choice>
   </start>
   <ns xmlns="http://purl.oclc.org/dsdl/schematron"
       prefix="sch"
       uri="http://purl.oclc.org/dsdl/schematron"/> 
   <ns xmlns="http://purl.oclc.org/dsdl/schematron"
       prefix="tei"
       uri="http://www.tei-c.org/ns/1.0"/> 
   <ns xmlns="http://purl.oclc.org/dsdl/schematron"
       prefix="xs"
       uri="http://www.w3.org/2001/XMLSchema"/> 
   <ns xmlns="http://purl.oclc.org/dsdl/schematron"
       prefix="xsl"
       uri="http://www.w3.org/1999/XSL/Transform"/> 
   <ns xmlns="http://purl.oclc.org/dsdl/schematron"
       prefix="eg"
       uri="http://www.tei-c.org/ns/Examples"/>
   <sch:pattern xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:eg="http://www.tei-c.org/ns/Examples"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
                <sch:let name="double.quotes" value="'[&#34;“”]'"/>
                <sch:let name="apos.typographic" value="'[‘’]'"/>
                <sch:let name="apos.straight" value="''''"/>
                <sch:let name="quotes" value="concat('[', $apos.straight, '&#34;]')"/>
              </sch:pattern>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_jtei-jtei.sch-straightApos-constraint-40">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:eg="http://www.tei-c.org/ns/Examples"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                context="text()[not(ancestor::tei:eg|ancestor::eg:egXML|ancestor::tei:code|ancestor::tei:tag)]">
                <sch:report test="matches(., $apos.straight)">
                  "Straight apostrophe" characters are not permitted. Please use the
                  Right Single Quotation Mark (U+2019 or ’) character instead. On the other hand, if the straight 
                  apostrophe characters function as quotation marks, please replace them with appropriate mark-up 
                  that will ensure the appropriate quotation marks will be generated consistently.
                </sch:report>
              </sch:rule>
   </pattern>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_jtei-jtei.sch-LRquotes-constraint-41">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:eg="http://www.tei-c.org/ns/Examples"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                context="text()[not(ancestor::tei:eg|ancestor::eg:egXML|ancestor::tei:code|ancestor::tei:tag)][matches(., $apos.typographic)]">
                <sch:report test="matches(., '\W[’]\D') or matches(., '[‘](\W|$)') or matches(., '\w[‘]\w')">
                  Left and Right Single Quotation Marks should be used in the right place.
                </sch:report>
              </sch:rule>
   </pattern>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_jtei-jtei.sch-quotationMarks-constraint-42">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:eg="http://www.tei-c.org/ns/Examples"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                context="text()[not(ancestor::tei:eg|ancestor::eg:egXML|ancestor::tei:code|ancestor::tei:tag)]">
                <sch:report test="matches(., $double.quotes) or matches(., '(^|\W)[‘][^‘’]+[’](\W|$)')">
                  Quotation marks are not permitted in plain text. Please use appropriate mark-up that will ensure the appropriate quotation marks will be generated consistently.
                </sch:report>
              </sch:rule>
   </pattern>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_jtei-jtei.sch-doubleHyphens-constraint-43">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:eg="http://www.tei-c.org/ns/Examples"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                context="text()[not(ancestor::tei:eg|ancestor::eg:egXML|ancestor::tei:code|ancestor::tei:tag|ancestor::tei:ref)]">
                <sch:assert test="not(contains(., '--'))">
                  Double hyphens should not be used for dashes. Please use 
                  the EM Dash (U+2014 or —) instead.
                </sch:assert>
              </sch:rule>
   </pattern>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_jtei-jtei.sch-rangeHyphen-constraint-44">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:eg="http://www.tei-c.org/ns/Examples"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                context="text()[not(ancestor::tei:eg|ancestor::eg:egXML|ancestor::tei:code|ancestor::tei:tag|ancestor::tei:idno)][not(. = parent::*/@*)]">
                <sch:assert test="not(matches(., '\d-\d'))">
                  Numeric ranges should not be indicated with a hyphen. Please use 
                  the EN Dash (U+2013 or –) character instead.
                </sch:assert>
              </sch:rule>
   </pattern>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_jtei-jtei.sch-ieEg-constraint-45">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:eg="http://www.tei-c.org/ns/Examples"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                context="text()[not(ancestor::tei:eg|ancestor::eg:egXML|ancestor::tei:code|ancestor::tei:tag)]">
                <sch:report test="matches(., '(i\.e\.|e\.g\.)[^,]', 'i')">
                  You should put a comma after "i.e." and "e.g.". 
                </sch:report>
              </sch:rule>
   </pattern>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_jtei-jtei.sch-localLinkTarget-constraint-46">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:eg="http://www.tei-c.org/ns/Examples"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                context="@*[not(ancestor::eg:egXML)][name() = ('corresp', 'target', 'from', 'to', 'ref', 'rendition', 'resp', 'source')][some $i in tokenize(., '\s+') satisfies starts-with($i, '#')]">
                <sch:assert test="every $i in tokenize(., '\s+')[starts-with(., '#')] satisfies id( substring-after($i, '#'))">
                  There's no local target for this link. Please make sure you use an existing @xml:id value.
                </sch:assert>
              </sch:rule>
   </pattern>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_jtei-jtei.sch-quoteDelim-constraint-47">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:eg="http://www.tei-c.org/ns/Examples"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                context="tei:title[@level eq 'a']|tei:mentioned|tei:soCalled|tei:quote|tei:q">
                <sch:assert test="not(matches(., concat('^', $double.quotes, '|', $double.quotes, '$')))">
                  Quotation mark delimiters are not allowed for <sch:name/>: they are completed at processing time via XSLT.
                </sch:assert>
              </sch:rule>
   </pattern>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_jtei-jtei.sch-crossref-id-constraint-48">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:eg="http://www.tei-c.org/ns/Examples"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                context="tei:body//tei:div[not(@type='editorialIntroduction')]|tei:figure|tei:table"
                role="warning">
                <sch:assert test="@xml:id">
                  You're strongly advised to add an @xml:id attribute to <sch:name/> to ease formal cross-referencing 
                  with (ptr|ref)[@type='crossref']
                </sch:assert>
              </sch:rule>
   </pattern>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_jtei-jtei.sch-formalCrossref-constraint-49">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:eg="http://www.tei-c.org/ns/Examples"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                context="text()[not(ancestor::tei:eg|ancestor::eg:egXML|ancestor::tei:code|ancestor::tei:tag|ancestor::tei:ref[not(@type='crossref')])]"
                role="warning">
                <sch:assert test="not(matches(., '(table|figure|example|section) \d+([.,]\d+)* ((above)|(below))', 'i'))">
                  Please replace literal references to tables, figures, examples, and sections with a formal crosslink:
                  (ptr|ref)[@type="crossref"]
                </sch:assert>
              </sch:rule>
   </pattern>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_jtei-jtei.sch-crossrefTargetType-constraint-50">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:eg="http://www.tei-c.org/ns/Examples"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                context="tei:ptr[@type='crossref']|tei:ref[@type='crossref']">
                <sch:assert test="id(substring-after(@target, '#'))/(self::tei:div|self::tei:figure|self::tei:table)">
                  Cross-links (<sch:name/>[@type="crossref"]) should be targeted at div, figure, or table elements.
                </sch:assert>
              </sch:rule>
   </pattern>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_jtei-jtei.sch-crossrefType-constraint-51">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:eg="http://www.tei-c.org/ns/Examples"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                context="tei:ptr[not(@type='crossref')]|tei:ref[not(@type='crossref')]">
                <sch:report test="id(substring-after(@target, '#'))/(self::tei:div|self::tei:figure|self::tei:table)">
                  Please type internal cross-references as 'crossref' (<sch:name/>[@type="crossref"]).
                </sch:report>
              </sch:rule>
   </pattern>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_jtei-jtei.sch-centuries-constraint-52">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:eg="http://www.tei-c.org/ns/Examples"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                context="text()[not(ancestor::tei:quote or ancestor::tei:title)]">
                <sch:assert test="not(matches(., '\d\d?((th)|(st)|(rd)|(nd))[- ]centur((y)|(ies))', 'i'))">
                  Centuries such as "the nineteenth century" should be spelled out, not written with digits.
                </sch:assert>
              </sch:rule>
   </pattern>
   <pattern xmlns="http://purl.oclc.org/dsdl/schematron"
            id="tei_jtei-jtei.sch-teiVersion-constraint-53">
      <sch:rule xmlns="http://www.tei-c.org/ns/1.0"
                xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                xmlns:eg="http://www.tei-c.org/ns/Examples"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                context="@target[contains(., 'http://www.tei-c.org/release/doc/tei-p5-doc')]">
                <sch:assert test="false()">
                  Please refer to the exact version of the TEI Guidelines, and link to the version that can be found in the Vault section. For an overview of all archived versions, see http://www.tei-c.org/Vault/P5/.
                  
                  If you're referring to the English version, the correct URL will likely take the form of http://www.tei-c.org/Vault/P5/{$version-number}/doc/tei-p5-doc/en/html/.
                </sch:assert>
              </sch:rule>
   </pattern>
</grammar>
