<?xml version="1.0"?>
<rng:grammar xmlns:rng="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<!--Schema generated 2006-01-30T20:23:54Z
Copyright 2005 TEI Consortium.
This is free software; you can redistribute it and/or
	    modify it under the terms of the GNU General Public
	    License as published by the Free Software Foundation;
	    either version 2 of the License, or (at your option) any
	    later version.
This material is distributed in the hope that it will be
	    useful, but WITHOUT ANY WARRANTY; without even the implied
	    warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
	    PURPOSE. See the GNU General Public License for more
	    details.
You should have received a copy of the GNU General Public
	    License along with this file; if not, write to the Free
	    Software Foundation, Inc., 59 Temple Place, Suite 330,
	    Boston, MA 02111-1307, USA.
To contact the TEI Consortium use the following addresses.
	    For general (non-technical) enquiries: 
		  target="mailto:info@tei-c.org"/>info@tei-c.orgFor membership enquiries: membership@tei-c.orgFor technical enquiries, particularly about the
		Guidelines, DTDs, schemas, or software available from
		the TEI-C: editors@tei-c.orgFor up to date information, consult the TEI web site at http://www.tei-c.org/P5-->
<!--Definitions from module tei-->
<!--Set predeclared macros-->
<!--0. predeclared classes-->
  <rng:define name="att.metrical.attributes" combine="choice">
    <rng:empty/>
  </rng:define>
  <rng:define name="att.enjamb.attributes" combine="choice">
    <rng:empty/>
  </rng:define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.phrase" combine="choice">
    <ref name="model.ptrLike.form"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.ptrLike.form" combine="choice">
    <notAllowed/>
  </define>
  <rng:define name="att.ptrLike.form.attributes" combine="choice">
    <rng:empty/>
  </rng:define>
  <rng:define name="att.global.linking.attributes" combine="choice">
    <rng:empty/>
  </rng:define>
  <rng:define name="att.pointing.attributes" combine="choice">
    <rng:empty/>
  </rng:define>
  <rng:define name="att.global.analytic.attributes" combine="choice">
    <rng:empty/>
  </rng:define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.persNamePart" combine="choice">
    <notAllowed/>
  </define>
  <rng:define name="att.personal.attributes" combine="choice">
    <rng:empty/>
  </rng:define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.placeNamePart" combine="choice">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.datePart" combine="choice">
    <notAllowed/>
  </define>
  <rng:define name="att.datePart.attributes" combine="choice">
    <rng:empty/>
  </rng:define>
<!--0. predeclared macros-->
<!--1. classes-->
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.ascribed.attributes">
    <ref name="att.ascribed.attribute.who"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" 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>
        <ref name="data.pointers"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.datable.attributes">
    <ref name="att.datable.attribute.notBefore"/>
    <ref name="att.datable.attribute.notAfter"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.datable.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"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.datable.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"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.declarable.attributes">
    <ref name="att.declarable.attribute.default"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.declarable.attribute.default">
    <optional>
      <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" name="default" a:defaultValue="false">
        <a:documentation>indicates whether or not this element is selected by default when
its parent is selected.</a:documentation>
        <choice>
          <value>true</value>
          <a:documentation>(This element is selected if its parent is selected) </a:documentation>
          <value>false</value>
          <a:documentation>(This element can only be selected explicitly, unless it is the
only one of its kind, in which case it is selected if its parent is selected.) </a:documentation>
        </choice>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.declaring.attributes">
    <ref name="att.declaring.attribute.decls"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.declaring.attribute.decls">
    <optional>
      <attribute name="decls">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies one or more declarable elements within the
header, which are understood to apply to the element bearing this
attribute and its content.</a:documentation>
        <ref name="data.pointers"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.divLike.attributes">
    <ref name="att.metrical.attributes"/>
    <ref name="att.divLike.attribute.type"/>
    <ref name="att.divLike.attribute.org"/>
    <ref name="att.divLike.attribute.sample"/>
    <ref name="att.divLike.attribute.part"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.divLike.attribute.type">
    <optional>
      <attribute name="type">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies a name conventionally used for this level of
		subdivision, e.g. act, volume, book,
		section, canto, etc.</a:documentation>
        <ref name="data.enumerated"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.divLike.attribute.org">
    <optional>
      <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" name="org" a:defaultValue="uniform">
        <a:documentation>specifies how the content of the division is organized.</a:documentation>
        <choice>
          <value>composite</value>
          <a:documentation>(composite content: i.e. no claim is made about the
		  sequence in which the immediate contents of this division
		  are to be processed, or their inter-relationships.) </a:documentation>
          <value>uniform</value>
          <a:documentation>(uniform content: i.e. the immediate contents of this
		  element are regarded as forming a logical unit, to be
		  processed in sequence.) </a:documentation>
        </choice>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.divLike.attribute.sample">
    <optional>
      <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" name="sample" a:defaultValue="complete">
        <a:documentation>indicates whether this division is a sample of the
		original source and if so, from which part.</a:documentation>
        <choice>
          <value>initial</value>
          <a:documentation>(division lacks material present at end in source.) </a:documentation>
          <value>medial</value>
          <a:documentation>(division lacks material at start and end.) </a:documentation>
          <value>final</value>
          <a:documentation>(division lacks material at start.) </a:documentation>
          <value>unknown</value>
          <a:documentation>(position of sampled material within original unknown.) </a:documentation>
          <value>complete</value>
          <a:documentation>(division is not a sample.) </a:documentation>
        </choice>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.divLike.attribute.part">
    <optional>
      <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" name="part" a:defaultValue="N">
        <a:documentation>specifies whether or not the division is fragmented by
		some other structural element, for example a speech which is
		divided between two or more verse stanzas.</a:documentation>
        <choice>
          <value>Y</value>
          <a:documentation>(the division is incomplete in some respect) </a:documentation>
          <value>N</value>
          <a:documentation>(either the division is complete, or no claim is made as to its completeness.) </a:documentation>
          <value>I</value>
          <a:documentation>(the initial part of an incomplete division) </a:documentation>
          <value>M</value>
          <a:documentation>(a medial part of an incomplete division) </a:documentation>
          <value>F</value>
          <a:documentation>(the final part of an incomplete division) </a:documentation>
        </choice>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.interpLike.attributes">
    <ref name="att.interpLike.attribute.resp"/>
    <ref name="att.interpLike.attribute.type"/>
    <ref name="att.interpLike.attribute.inst"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.interpLike.attribute.resp">
    <optional>
      <attribute name="resp">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates who is responsible for the interpretation.</a:documentation>
        <ref name="data.pointer"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.interpLike.attribute.type">
    <optional>
      <attribute name="type">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates what kind of phenomenon is being noted in the passage.</a:documentation>
        <ref name="data.enumerated"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.interpLike.attribute.inst">
    <optional>
      <attribute name="inst">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to instances of the analysis or interpretation represented
by the current element.</a:documentation>
        <ref name="data.pointers"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.editLike.attributes">
    <ref name="att.editLike.attribute.cert"/>
    <ref name="att.editLike.attribute.resp"/>
    <ref name="att.editLike.attribute.evidence"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.editLike.attribute.cert">
    <optional>
      <attribute name="cert">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">signifies the degree of certainty associated with the
	intervention or interpretation.</a:documentation>
        <ref name="data.enumerated"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.editLike.attribute.resp">
    <optional>
      <attribute name="resp">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the agency responsible for the
	intervention or interpretation, for example an editor or transcriber.</a:documentation>
        <ref name="data.pointer"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.editLike.attribute.evidence">
    <optional>
      <attribute name="evidence">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the nature of the evidence supporting the reliability or
  accuracy of the intervention or interpretation.</a:documentation>
        <ref name="data.enumerated"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.global.attributes">
    <ref name="att.global.linking.attributes"/>
    <ref name="att.global.analytic.attributes"/>
    <ref name="att.global.attribute.xmlid"/>
    <ref name="att.global.attribute.n"/>
    <ref name="att.global.attribute.xmllang"/>
    <ref name="att.global.attribute.rend"/>
    <ref name="att.global.attribute.xmlbase"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.global.attribute.xmlid">
    <optional>
      <attribute name="xml:id">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a unique identifier for the element bearing the
      attribute.</a:documentation>
        <data type="ID"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.global.attribute.n">
    <optional>
      <attribute name="n">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a number (or other label) for an element, which is
      not necessarily unique within the document.</a:documentation>
        <ref name="data.words"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.global.attribute.xmllang">
    <optional>
      <attribute name="xml:lang">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the language of the element content using the
      codes from RFC
      3066</a:documentation>
        <ref name="data.language"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.global.attribute.rend">
    <optional>
      <attribute name="rend">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates how the element in question was rendered or
	presented in the source text.</a:documentation>
        <ref name="data.words"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" 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 xmlns="http://relaxng.org/ns/structure/1.0" name="att.measured.attributes">
    <ref name="att.measured.attribute.unit"/>
    <ref name="att.measured.attribute.scope"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.measured.attribute.unit">
    <optional>
      <attribute name="unit">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">names the units used for the measurement.</a:documentation>
        <ref name="data.enumerated"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.measured.attribute.scope">
    <optional>
      <attribute name="scope">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the applicability of this measurement, where
   more than one object is being measured.</a:documentation>
        <ref name="data.enumerated"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.measurement.attributes">
    <ref name="att.measurement.attribute.unit"/>
    <ref name="att.measurement.attribute.quantity"/>
    <ref name="att.measurement.attribute.commodity"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.measurement.attribute.unit">
    <optional>
      <attribute name="unit">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the units used for the measurement, usually
      using the standard symbol for the desired units.</a:documentation>
        <ref name="data.enumerated"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.measurement.attribute.quantity">
    <optional>
      <attribute name="quantity">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the number of the specified units that
      comprise the measurement</a:documentation>
        <ref name="data.numeric"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.measurement.attribute.commodity">
    <optional>
      <attribute name="commodity">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the substance that is being measured</a:documentation>
        <ref name="data.words"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.naming.attributes">
    <ref name="att.naming.attribute.key"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.naming.attribute.key">
    <optional>
      <attribute name="key">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a means of locating a full definition for the entity being named
such as a database record key or URI.</a:documentation>
        <ref name="data.key"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.segLike.attributes">
    <ref name="att.metrical.attributes"/>
    <ref name="att.segLike.attribute.type"/>
    <ref name="att.segLike.attribute.function"/>
    <ref name="att.segLike.attribute.part"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.segLike.attribute.type">
    <optional>
      <attribute name="type">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes the type of segment.</a:documentation>
        <ref name="data.enumerated"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.segLike.attribute.function">
    <optional>
      <attribute name="function">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes the function of the segment.</a:documentation>
        <ref name="data.enumerated"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.segLike.attribute.part">
    <optional>
      <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" name="part" a:defaultValue="N">
        <a:documentation>specifies whether or not the segment is fragmented by some other
structural element, for example a clause which is divided between two
or more sentences.</a:documentation>
        <choice>
          <value>Y</value>
          <a:documentation>(the segment is incomplete in some respect) </a:documentation>
          <value>N</value>
          <a:documentation>(either the segment is complete, or no claim is made as to
its completeness) </a:documentation>
          <value>I</value>
          <a:documentation>(the initial part of an incomplete segment) </a:documentation>
          <value>M</value>
          <a:documentation>(a medial part of an incomplete segment) </a:documentation>
          <value>F</value>
          <a:documentation>(the final part of an incomplete segment) </a:documentation>
        </choice>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.spanning.attributes">
    <ref name="att.spanning.attribute.spanTo"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.spanning.attribute.spanTo">
    <optional>
      <attribute name="spanTo">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the end of a span initiated by the element
	bearing this attribute.</a:documentation>
        <ref name="data.pointer"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.timed.attributes">
    <ref name="att.timed.attribute.start"/>
    <ref name="att.timed.attribute.end"/>
    <ref name="att.timed.attribute.dur"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.timed.attribute.start">
    <optional>
      <attribute name="start">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the location within a temporal alignment
      at which this element begins.</a:documentation>
        <ref name="data.pointer"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.timed.attribute.end">
    <optional>
      <attribute name="end">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the location within a temporal alignment at which
   this element ends.</a:documentation>
        <ref name="data.pointer"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.timed.attribute.dur">
    <optional>
      <attribute name="dur">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the length of this element in time, using either
         specific units or the units specified on the associated temporal
         alignment.
   </a:documentation>
        <data type="duration"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.typed.attributes">
    <ref name="att.typed.attribute.type"/>
    <ref name="att.typed.attribute.subtype"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" 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.word"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.typed.attribute.subtype">
    <optional>
      <attribute name="subtype">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a sub-categorization of the element, if needed</a:documentation>
        <ref name="data.word"/>
      </attribute>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.nameLike" combine="choice">
    <ref name="model.nameLike.agent"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.nameLike.agent">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.phrase" combine="choice">
    <ref name="model.segLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.segLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.phrase" combine="choice">
    <ref name="model.hiLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.hiLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.pPart.data" combine="choice">
    <ref name="model.dateLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.recordingPart" combine="choice">
    <ref name="model.dateLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.dateLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.pPart.data" combine="choice">
    <ref name="model.timeLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.timeLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.pPart.data" combine="choice">
    <ref name="model.measureLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.measureLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.phrase" combine="choice">
    <ref name="model.graphicLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.graphicLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.phrase" combine="choice">
    <ref name="model.pPart.msdesc"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.pPart.msdesc">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.phrase" combine="choice">
    <ref name="model.pPart.edit"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.pPart.edit">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.phrase" combine="choice">
    <ref name="model.ptrLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.ptrLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.phrase" combine="choice">
    <ref name="model.lPart"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.lPart">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.global" combine="choice">
    <ref name="model.global.meta"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.global.meta">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.global" combine="choice">
    <ref name="model.milestoneLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.milestoneLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.gLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.common" combine="choice">
    <ref name="model.oddDecl"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.inter" combine="choice">
    <ref name="model.oddDecl"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.oddDecl">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.common" combine="choice">
    <ref name="model.oddRef"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.inter" combine="choice">
    <ref name="model.oddRef"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.oddRef">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.phrase" combine="choice">
    <ref name="model.oddPhr"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.oddPhr">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.inter" combine="choice">
    <ref name="model.qLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.common" combine="choice">
    <ref name="model.qLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.qLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.inter" combine="choice">
    <ref name="model.biblLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.common" combine="choice">
    <ref name="model.biblLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.biblLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.inter" combine="choice">
    <ref name="model.listLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.common" combine="choice">
    <ref name="model.listLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.listLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.inter" combine="choice">
    <ref name="model.noteLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.common" combine="choice">
    <ref name="model.noteLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.noteLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.divPart.stage" combine="choice">
    <ref name="model.stageLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.inter" combine="choice">
    <ref name="model.stageLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.stageLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.featureVal" combine="choice">
    <ref name="model.complexVal"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.complexVal">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.featureVal" combine="choice">
    <ref name="model.singleVal"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.singleVal">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.entryParts.top">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.global" combine="choice">
    <ref name="model.global.edit"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.global.edit">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.common" combine="choice">
    <ref name="model.divPart"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.divPart">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.blockLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.pLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.publicationStmtPart">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.glossLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.quoteLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.biblPart" combine="choice">
    <ref name="model.respLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.msItemPart" combine="choice">
    <ref name="model.respLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.respLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.personPart">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.divWrapper.bottom">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.divWrapper">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.frontPart" combine="choice">
    <ref name="model.frontPart.drama"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.frontPart.drama">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.pLike.front">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.titlepagePart">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.msItemPart">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.choicePart">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.lLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.recordingPart">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.biblPart" combine="choice">
    <ref name="model.imprintPart"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.imprintPart">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.catDescPart">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.addrPart" combine="choice">
    <ref name="model.nameLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.pPart.data" combine="choice">
    <ref name="model.nameLike"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.nameLike">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.global">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.featureVal">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.common">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.biblPart">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.frontPart">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.addrPart">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.phrase" combine="choice">
    <ref name="model.pPart.data"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.pPart.data">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.inter">
    <notAllowed/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.phrase">
    <notAllowed/>
  </define>
<!--2. elements-->
<!--3. macros-->
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.certainty">
    <choice xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:value>high</rng:value>
      <rng:value>medium</rng:value>
      <rng:value>low</rng:value>
      <rng:value>unknown</rng:value>
    </choice>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.probability">
    <data xmlns:rng="http://relaxng.org/ns/structure/1.0" type="double">
      <rng:param name="minInclusive">0</rng:param>
      <rng:param name="maxInclusive">1</rng:param>
    </data>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.numeric">
    <choice xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:data type="double"/>
      <rng:data type="decimal"/>
    </choice>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.count">
    <data xmlns:rng="http://relaxng.org/ns/structure/1.0" type="nonNegativeInteger"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.temporal">
    <choice xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:data type="date"/>
      <rng:data type="gYear"/>
      <rng:data type="gMonth"/>
      <rng:data type="gDay"/>
      <rng:data type="gYearMonth"/>
      <rng:data type="gMonthDay"/>
      <rng:data type="time"/>
      <rng:data type="dateTime"/>
      <rng:data type="token">
        <rng:param name="pattern">(-?[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T)?([01][0-9]|2[0-3])(:[0-5][0-9])?(Z|[+\-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?</rng:param>
      </rng:data>
    </choice>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.duration">
    <data xmlns:rng="http://relaxng.org/ns/structure/1.0" type="duration"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.truthValue">
    <choice xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:data type="boolean"/>
    </choice>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.xTruthValue">
    <choice xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:data type="boolean"/>
      <rng:value>unknown</rng:value>
      <rng:value>inapplicable</rng:value>
    </choice>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.language">
    <data xmlns:rng="http://relaxng.org/ns/structure/1.0" type="language"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.sex">
    <choice xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:value>0</rng:value>
      <rng:value>1</rng:value>
      <rng:value>2</rng:value>
      <rng:value>9</rng:value>
    </choice>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.namespace">
    <data xmlns:rng="http://relaxng.org/ns/structure/1.0" type="anyURI"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.outputMeasurement">
    <data xmlns:rng="http://relaxng.org/ns/structure/1.0" type="token">
      <rng:param name="pattern">[\-+]?\d+(\.\d+)?(%|cm|mm|in|pt|pc|px|em|ex|gd|rem|vw|vh|vm)</rng:param>
    </data>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.pattern">
    <data xmlns:rng="http://relaxng.org/ns/structure/1.0" type="token"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.pointer">
    <data xmlns:rng="http://relaxng.org/ns/structure/1.0" type="anyURI"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.pointers">
    <list xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:oneOrMore>
        <rng:ref name="data.pointer"/>
      </rng:oneOrMore>
    </list>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.code">
    <data xmlns:rng="http://relaxng.org/ns/structure/1.0" type="anyURI"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.enumerated">
    <data xmlns:rng="http://relaxng.org/ns/structure/1.0" type="token"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.key">
    <data xmlns:rng="http://relaxng.org/ns/structure/1.0" type="string"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.word">
    <data xmlns:rng="http://relaxng.org/ns/structure/1.0" type="token">
      <rng:param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</rng:param>
    </data>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.names">
    <list xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:oneOrMore>
        <rng:ref name="data.name"/>
      </rng:oneOrMore>
    </list>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.words">
    <list xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:oneOrMore>
        <rng:ref name="data.word"/>
      </rng:oneOrMore>
    </list>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="data.name">
    <data xmlns:rng="http://relaxng.org/ns/structure/1.0" type="Name"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="macro.bodyPart.div">
    <group xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:ref name="div"/>
      <rng:zeroOrMore>
        <rng:choice>
          <rng:ref name="div"/>
          <rng:ref name="divGen"/>
          <rng:group>
            <rng:ref name="model.global"/>
          </rng:group>
        </rng:choice>
      </rng:zeroOrMore>
    </group>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="macro.bodyPart.div0">
    <group xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:ref name="div0"/>
      <rng:zeroOrMore>
        <rng:choice>
          <rng:ref name="div0"/>
          <rng:ref name="divGen"/>
          <rng:group>
            <rng:ref name="model.global"/>
          </rng:group>
        </rng:choice>
      </rng:zeroOrMore>
    </group>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="macro.bodyPart.div1">
    <group xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:ref name="div1"/>
      <rng:zeroOrMore>
        <rng:choice>
          <rng:ref name="div1"/>
          <rng:ref name="divGen"/>
          <rng:group>
            <rng:ref name="model.global"/>
          </rng:group>
        </rng:choice>
      </rng:zeroOrMore>
    </group>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="macro.bodyPart.pre">
    <zeroOrMore xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:ref name="divGen"/>
      <rng:zeroOrMore>
        <rng:ref name="model.global"/>
      </rng:zeroOrMore>
    </zeroOrMore>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="macro.bodyPart.main">
    <group xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:group>
        <rng:ref name="macro.bodyPart.pre"/>
      </rng:group>
      <rng:choice>
        <rng:group>
          <rng:ref name="macro.bodyPart.div"/>
        </rng:group>
        <rng:group>
          <rng:ref name="macro.bodyPart.div0"/>
        </rng:group>
        <rng:group>
          <rng:ref name="macro.bodyPart.div1"/>
        </rng:group>
      </rng:choice>
    </group>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="mix.drama">
    <choice>
      <notAllowed/>
    </choice>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="mix.spoken">
    <choice>
      <notAllowed/>
    </choice>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="mix.dictionaries">
    <choice>
      <notAllowed/>
    </choice>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="macro.component" combine="choice">
    <choice>
      <ref xmlns:rng="http://relaxng.org/ns/structure/1.0" name="model.common"/>
      <ref xmlns:rng="http://relaxng.org/ns/structure/1.0" name="mix.drama"/>
      <ref xmlns:rng="http://relaxng.org/ns/structure/1.0" name="mix.spoken"/>
      <ref xmlns:rng="http://relaxng.org/ns/structure/1.0" name="mix.dictionaries"/>
    </choice>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="macro.componentSeq" combine="choice">
    <zeroOrMore xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:choice>
        <rng:group>
          <rng:ref name="macro.component"/>
        </rng:group>
        <rng:group>
          <rng:ref name="model.global"/>
        </rng:group>
      </rng:choice>
    </zeroOrMore>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="macro.paraContent">
    <zeroOrMore xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:choice>
        <rng:text/>
        <rng:ref name="model.gLike"/>
        <rng:ref name="model.phrase"/>
        <rng:ref name="model.inter"/>
        <rng:ref name="model.global"/>
      </rng:choice>
    </zeroOrMore>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="macro.phraseSeq">
    <zeroOrMore xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:choice>
        <rng:text/>
        <rng:ref name="model.gLike"/>
        <rng:ref name="model.phrase"/>
        <rng:ref name="model.global"/>
      </rng:choice>
    </zeroOrMore>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="macro.specialPara">
    <zeroOrMore xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:choice>
        <rng:text/>
        <rng:ref name="model.gLike"/>
        <rng:ref name="model.phrase"/>
        <rng:ref name="model.inter"/>
        <rng:ref name="model.divPart"/>
        <rng:ref name="model.global"/>
      </rng:choice>
    </zeroOrMore>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="macro.xtext">
    <zeroOrMore xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:choice>
        <rng:text/>
        <rng:ref name="model.gLike"/>
      </rng:choice>
    </zeroOrMore>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="macro.fileDescPart">
    <group xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:ref name="titleStmt"/>
      <rng:optional>
        <rng:ref name="editionStmt"/>
      </rng:optional>
      <rng:optional>
        <rng:ref name="extent"/>
      </rng:optional>
      <rng:ref name="publicationStmt"/>
      <rng:optional>
        <rng:ref name="seriesStmt"/>
      </rng:optional>
      <rng:optional>
        <rng:ref name="notesStmt"/>
      </rng:optional>
    </group>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="macro.glossSeq">
    <group xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:optional>
        <rng:ref name="altIdent"/>
      </rng:optional>
      <rng:zeroOrMore>
        <rng:ref name="equiv"/>
      </rng:zeroOrMore>
      <rng:zeroOrMore>
        <rng:ref name="gloss"/>
      </rng:zeroOrMore>
      <rng:zeroOrMore>
        <rng:ref name="desc"/>
      </rng:zeroOrMore>
    </group>
  </define>
</rng:grammar>
