<?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 2009-01-31T16:40:31Z
Edition: 1.3.0. Last updated on February 1st 2009.
Copyright 2009 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.
A copy of the GNU General Public
	    License is stored on the TEI web site
	    along with this file; you can also contact the Free
	    Software Foundation, Inc., 59 Temple Place, Suite 330,
	    Boston, MA 02111-1307, USA, for a copy.
For information about the TEI, including contact
		details, consult the TEI web
	      site at http://www.tei-c.org/. 
		Critical Apparatus-->
  <!--Definitions from module textcrit-->
  <!--Set global predeclared macros-->
  <!--Set predeclared macros-->
  <!--0. predeclared macros-->
  <!--1. classes-->
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.rdgLike">
    <rng:choice>
      <ref name="rdg"/>
    </rng:choice>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.rdgLike_sequence">
    <ref name="rdg"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.rdgLike_sequenceOptional">
    <optional>
      <ref name="rdg"/>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.rdgLike_sequenceOptionalRepeatable">
    <zeroOrMore>
      <ref name="rdg"/>
    </zeroOrMore>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.rdgLike_sequenceRepeatable">
    <oneOrMore>
      <ref name="rdg"/>
    </oneOrMore>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.rdgPart">
    <rng:choice>
      <ref name="wit"/>
      <ref name="witStart"/>
      <ref name="witEnd"/>
      <ref name="lacunaStart"/>
      <ref name="lacunaEnd"/>
    </rng:choice>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.rdgPart_sequence">
    <ref name="wit"/>
    <ref name="witStart"/>
    <ref name="witEnd"/>
    <ref name="lacunaStart"/>
    <ref name="lacunaEnd"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.rdgPart_sequenceOptional">
    <optional>
      <ref name="wit"/>
    </optional>
    <optional>
      <ref name="witStart"/>
    </optional>
    <optional>
      <ref name="witEnd"/>
    </optional>
    <optional>
      <ref name="lacunaStart"/>
    </optional>
    <optional>
      <ref name="lacunaEnd"/>
    </optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.rdgPart_sequenceOptionalRepeatable">
    <zeroOrMore>
      <ref name="wit"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="witStart"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="witEnd"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="lacunaStart"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="lacunaEnd"/>
    </zeroOrMore>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.rdgPart_sequenceRepeatable">
    <oneOrMore>
      <ref name="wit"/>
    </oneOrMore>
    <oneOrMore>
      <ref name="witStart"/>
    </oneOrMore>
    <oneOrMore>
      <ref name="witEnd"/>
    </oneOrMore>
    <oneOrMore>
      <ref name="lacunaStart"/>
    </oneOrMore>
    <oneOrMore>
      <ref name="lacunaEnd"/>
    </oneOrMore>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.rdgPart.attributes">
    <ref name="att.rdgPart.attribute.wit"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.rdgPart.attribute.wit">
    <rng:optional>
      <rng:attribute name="wit">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(witness or witnesses) contains a list of one or more sigla indicating the witnesses
which begin or end at this point.</a:documentation>
        <rng:list>
          <rng:oneOrMore>
            <ref name="data.pointer"/>
          </rng:oneOrMore>
        </rng:list>
      </rng:attribute>
    </rng:optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.textCritical.attributes">
    <ref name="att.textCritical.attribute.wit"/>
    <ref name="att.textCritical.attribute.type"/>
    <ref name="att.textCritical.attribute.cause"/>
    <ref name="att.textCritical.attribute.varSeq"/>
    <ref name="att.textCritical.attribute.resp"/>
    <ref name="att.textCritical.attribute.hand"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.textCritical.attribute.wit">
    <rng:optional>
      <rng:attribute name="wit">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(witness or witnesses) contains a list of one or more pointers indicating the witnesses
which attest to a given reading.</a:documentation>
        <rng:list>
          <rng:oneOrMore>
            <ref name="data.pointer"/>
          </rng:oneOrMore>
        </rng:list>
      </rng:attribute>
    </rng:optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.textCritical.attribute.type">
    <rng:optional>
      <rng:attribute name="type">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies the reading according to some useful typology.
Sample values include: 1] substantive; 2] orthographic</a:documentation>
        <ref name="data.enumerated"/>
      </rng:attribute>
    </rng:optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.textCritical.attribute.cause">
    <rng:optional>
      <rng:attribute name="cause">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies the cause for the variant reading, according to
any appropriate typology of possible origins.
Sample values include: 1] homeoteleuton; 2] homeoarchy; 3] paleographicConfusion; 4] haplography; 5] dittography; 6] falseEmendation</a:documentation>
        <ref name="data.enumerated"/>
      </rng:attribute>
    </rng:optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.textCritical.attribute.varSeq">
    <rng:optional>
      <rng:attribute name="varSeq">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(variant sequence) provides a number indicating the position of this reading in a
sequence, when there is reason to presume a sequence to the variants
on any one lemma.</a:documentation>
        <ref name="data.count"/>
      </rng:attribute>
    </rng:optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.textCritical.attribute.resp">
    <rng:optional>
      <rng:attribute name="resp">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(responsible party) identifies the editor responsible for asserting a
	particular reading in the witness.</a:documentation>
        <ref name="data.pointer"/>
      </rng:attribute>
    </rng:optional>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="att.textCritical.attribute.hand">
    <rng:optional>
      <rng:attribute name="hand">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">signifies the hand responsible for a particular reading in the
witness.</a:documentation>
        <ref name="data.pointer"/>
      </rng:attribute>
    </rng:optional>
  </define>
  <!--2. elements-->
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="app">
    <element name="app">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(apparatus entry) contains one entry in a critical apparatus, with an optional
lemma and at least one reading.</a:documentation>
      <ref name="app.content"/>
      <ref name="app.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="app.content">
    <rng:group>
      <rng:zeroOrMore>
        <rng:ref name="model.global"/>
      </rng:zeroOrMore>
      <rng:optional>
        <rng:ref name="lem"/>
        <rng:zeroOrMore>
          <rng:ref name="model.global"/>
        </rng:zeroOrMore>
        <rng:optional>
          <rng:ref name="wit"/>
          <rng:zeroOrMore>
            <rng:ref name="model.global"/>
          </rng:zeroOrMore>
        </rng:optional>
      </rng:optional>
      <rng:zeroOrMore>
        <rng:choice>
          <rng:group>
            <rng:ref name="model.rdgLike"/>
            <rng:zeroOrMore>
              <rng:ref name="model.global"/>
            </rng:zeroOrMore>
            <rng:optional>
              <rng:ref name="wit"/>
              <rng:zeroOrMore>
                <rng:ref name="model.global"/>
              </rng:zeroOrMore>
            </rng:optional>
          </rng:group>
          <rng:group>
            <rng:ref name="rdgGrp"/>
            <rng:zeroOrMore>
              <rng:ref name="model.global"/>
            </rng:zeroOrMore>
            <rng:optional>
              <rng:ref name="wit"/>
              <rng:zeroOrMore>
                <rng:ref name="model.global"/>
              </rng:zeroOrMore>
            </rng:optional>
          </rng:group>
        </rng:choice>
      </rng:zeroOrMore>
    </rng:group>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="app.localattributes">
    <rng:ref name="att.global.attributes"/>
    <rng:optional>
      <rng:attribute name="type">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies the variation contained in this element according to
some convenient typology.</a:documentation>
        <ref name="data.enumerated"/>
      </rng:attribute>
    </rng:optional>
    <rng:optional>
      <rng:attribute name="from">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the beginning of the lemma in the base text, if
necessary.</a:documentation>
        <ref name="data.pointer"/>
      </rng:attribute>
    </rng:optional>
    <rng:optional>
      <rng:attribute name="to">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the endpoint of the lemma in the base text, if
necessary.</a:documentation>
        <ref name="data.pointer"/>
      </rng:attribute>
    </rng:optional>
    <rng:optional>
      <rng:attribute name="loc">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(location) indicates the location of the variation, when the
location-referenced method of apparatus markup is used.</a:documentation>
        <rng:list>
          <rng:oneOrMore>
            <ref name="data.word"/>
          </rng:oneOrMore>
        </rng:list>
      </rng:attribute>
    </rng:optional>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="lacunaEnd">
    <element name="lacunaEnd">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the end of a lacuna in a mostly complete textual
witness.</a:documentation>
      <ref name="lacunaEnd.content"/>
      <ref name="lacunaEnd.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="lacunaEnd.content">
    <rng:empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="lacunaEnd.localattributes">
    <rng:ref name="att.global.attributes"/>
    <ref name="att.rdgPart.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="lacunaStart">
    <element name="lacunaStart">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the beginning of a lacuna in the text of a mostly
complete textual witness.</a:documentation>
      <ref name="lacunaStart.content"/>
      <ref name="lacunaStart.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="lacunaStart.content">
    <rng:empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="lacunaStart.localattributes">
    <rng:ref name="att.global.attributes"/>
    <ref name="att.rdgPart.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="lem">
    <element name="lem">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(lemma) contains the lemma, or base text, of a textual variation.</a:documentation>
      <ref name="lem.content"/>
      <ref name="lem.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="lem.content">
    <rng:zeroOrMore>
      <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:ref name="model.rdgPart"/>
      </rng:choice>
    </rng:zeroOrMore>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="lem.localattributes">
    <rng:ref name="att.global.attributes"/>
    <ref name="att.textCritical.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="listWit">
    <element name="listWit">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(witness list) lists definitions for all the witnesses referred to by a critical
  apparatus, optionally grouped hierarchically.</a:documentation>
      <ref name="listWit.content"/>
      <ref name="listWit.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="listWit.content">
    <rng:group>
      <rng:optional>
        <rng:ref name="model.headLike"/>
      </rng:optional>
      <rng:oneOrMore>
        <rng:choice>
          <rng:ref name="witness"/>
          <rng:ref name="listWit"/>
        </rng:choice>
      </rng:oneOrMore>
    </rng:group>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="listWit.localattributes">
    <rng:ref name="att.global.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="rdg">
    <element name="rdg">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reading) contains a single reading within a textual variation.</a:documentation>
      <ref name="rdg.content"/>
      <ref name="rdg.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="rdg.content">
    <rng:zeroOrMore>
      <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:ref name="model.rdgPart"/>
      </rng:choice>
    </rng:zeroOrMore>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="rdg.localattributes">
    <rng:ref name="att.global.attributes"/>
    <ref name="att.textCritical.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="rdgGrp">
    <element name="rdgGrp">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reading group) within a textual variation,
groups two or more readings perceived to have a genetic
relationship or other affinity.</a:documentation>
      <ref name="rdgGrp.content"/>
      <ref name="rdgGrp.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="rdgGrp.content">
    <rng:group>
      <rng:oneOrMore>
        <rng:choice>
          <rng:group>
            <rng:ref name="rdgGrp"/>
            <rng:optional>
              <rng:ref name="wit"/>
            </rng:optional>
          </rng:group>
          <rng:zeroOrMore>
            <rng:group>
              <rng:optional>
                <rng:group>
                  <rng:ref name="lem"/>
                  <rng:optional>
                    <rng:ref name="wit"/>
                  </rng:optional>
                </rng:group>
              </rng:optional>
              <rng:group>
                <rng:ref name="model.rdgLike"/>
                <rng:optional>
                  <rng:ref name="wit"/>
                </rng:optional>
              </rng:group>
            </rng:group>
          </rng:zeroOrMore>
        </rng:choice>
      </rng:oneOrMore>
    </rng:group>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="rdgGrp.localattributes">
    <rng:ref name="att.global.attributes"/>
    <ref name="att.textCritical.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="variantEncoding">
    <element name="variantEncoding">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">declares the method used to encode text-critical variants.</a:documentation>
      <ref name="variantEncoding.content"/>
      <ref name="variantEncoding.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="variantEncoding.content">
    <rng:empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="variantEncoding.localattributes">
    <rng:ref name="att.global.attributes"/>
    <rng:attribute name="method">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates which method is used to encode the apparatus of
variants.</a:documentation>
      <rng:choice>
        <rng:value>location-referenced</rng:value>
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">apparatus uses line numbers or other canonical reference scheme
referenced in a base text.</a:documentation>
        <rng:value>double-end-point</rng:value>
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">apparatus indicates the precise locations of the beginning and
ending of each lemma relative to a base text.</a:documentation>
        <rng:value>parallel-segmentation</rng:value>
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">alternate readings of a passage are given in parallel in the
text; no notion of a base text is necessary.</a:documentation>
      </rng:choice>
    </rng:attribute>
    <rng:attribute name="location">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates whether the apparatus appears within the running text
or external to it.</a:documentation>
      <rng:choice>
        <rng:value>internal</rng:value>
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">apparatus appears within the running text.</a:documentation>
        <rng:value>external</rng:value>
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">apparatus appears outside the base text.</a:documentation>
      </rng:choice>
    </rng:attribute>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="wit">
    <element name="wit">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a list of one or more sigla of witnesses attesting a
given reading, in a textual variation.</a:documentation>
      <ref name="wit.content"/>
      <ref name="wit.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="wit.content">
    <rng:ref name="macro.phraseSeq"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="wit.localattributes">
    <rng:ref name="att.global.attributes"/>
    <ref name="att.rdgPart.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="witDetail">
    <element name="witDetail">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(witness detail) gives further information about a particular witness, or
witnesses, to a particular reading.</a:documentation>
      <ref name="witDetail.content"/>
      <ref name="witDetail.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="witDetail.content">
    <rng:ref name="macro.phraseSeq"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="witDetail.localattributes">
    <rng:ref name="att.global.attributes"/>
    <ref name="att.placement.attributes"/>
    <rng:attribute name="target">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the identifier for the reading, or readings, to which
the witness detail refers.</a:documentation>
      <rng:list>
        <rng:oneOrMore>
          <ref name="data.pointer"/>
        </rng:oneOrMore>
      </rng:list>
    </rng:attribute>
    <rng:optional>
      <rng:attribute name="resp">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(responsible party) identifies the individual responsible for  identifying the
witness</a:documentation>
        <ref name="data.pointer"/>
      </rng:attribute>
    </rng:optional>
    <rng:attribute name="wit">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(witnesses) indicates the sigil or sigla for the witnesses to which the
detail refers.</a:documentation>
      <rng:list>
        <rng:oneOrMore>
          <ref name="data.pointer"/>
        </rng:oneOrMore>
      </rng:list>
    </rng:attribute>
    <rng:optional>
      <rng:attribute name="type">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes the type of information given about the witness.</a:documentation>
        <ref name="data.enumerated"/>
      </rng:attribute>
    </rng:optional>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="witEnd">
    <element name="witEnd">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(fragmented witness end) indicates the end, or suspension, of the text of a fragmentary
witness.</a:documentation>
      <ref name="witEnd.content"/>
      <ref name="witEnd.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="witEnd.content">
    <rng:empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="witEnd.localattributes">
    <rng:ref name="att.global.attributes"/>
    <ref name="att.rdgPart.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="witStart">
    <element name="witStart">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(fragmented witness start) indicates the beginning, or resumption, of the text of a
fragmentary witness.</a:documentation>
      <ref name="witStart.content"/>
      <ref name="witStart.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="witStart.content">
    <rng:empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="witStart.localattributes">
    <rng:ref name="att.global.attributes"/>
    <ref name="att.rdgPart.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="witness">
    <element name="witness">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains either a description of a single witness referred to
within the critical apparatus, or a list of witnesses which is to be
referred to by a single sigil.</a:documentation>
      <ref name="witness.content"/>
      <ref name="witness.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="witness.content">
    <rng:ref name="macro.limitedContent"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="witness.localattributes">
    <rng:ref name="att.global.attributes"/>
    <empty/>
  </define>
  <!--3. macros-->
</rng:grammar>
