<app>

<app> (참조 도구 표제 항목) 수의적 레마와 적어도 하나의 독법을 포함하여 비평적 참조 도구에서 하나의 표제 항목을 포함한다. [12.1.1 The Apparatus Entry]
모듈textcrit — 12 Critical Apparatus
속성att.global (@xml:id, @n, @xml:lang, @rend, @rendition, @xml:base, @xml:space) (att.global.linking (@corresp, @synch, @sameAs, @copyOf, @next, @prev, @exclude, @select)) (att.global.analytic (@ana)) (att.global.facs (@facs)) (att.global.change (@change))
type다양한 유형에 따라 이 요소에 포함된 변이형을 분류한다.
상태 수의적
자료 유형

<rng:ref name="data.enumerated"/>
data.enumerated
Any convenient descriptive word or phrase, describing the extent of the variation (e.g. word, phrase, punctuation, etc.) its text-critical significance (e.g. significant, accidental, unclear), or the nature of the variation or the principles required to understand it (e.g. lectio difficilior, usus auctoris, etc.)
from필요하다면 기본 텍스트에서 레마의 시작을 식별한다.
상태 수의적
자료 유형

<rng:ref name="data.pointer"/>
data.pointer
any valid identifier
to필요하다면 기본 텍스트에서 레마의 종료지점을 식별한다.
상태 수의적
자료 유형

<rng:ref name="data.pointer"/>
data.pointer
any valid identifier
loc (위치) 참조 도구 마크업의 위치 참조 방법이 사용될 때 변이형 위치를 나타낸다.
상태 수의적
자료 유형 1–∞ 출현 

<rng:ref name="data.word"/>
data.word
공백문자로 분리됨
A string containing a canonical reference for the passage to which the variation applies.
에 의해 사용된
에 의해 포함된
포함할 수 있다
선언

<rng:element name="app">
 <rng:ref name="att.global.attributes"/>
 <rng:ref name="att.global.linking.attributes"/>
 <rng:ref name="att.global.analytic.attributes"/>
 <rng:ref name="att.global.facs.attributes"/>
 <rng:ref name="att.global.change.attributes"/>
 <rng:optional>
  <rng:attribute name="type">
   <rng:ref name="data.enumerated"/>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="from">
   <rng:ref name="data.pointer"/>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="to">
   <rng:ref name="data.pointer"/>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="loc">
   <rng:list>
    <rng:ref name="data.word"/>
    <rng:zeroOrMore>
     <rng:ref name="data.word"/>
    </rng:zeroOrMore>
   </rng:list>
  </rng:attribute>
 </rng:optional>
 <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>
</rng:element>
element app
{
   att.global.attributes,
   att.global.linking.attributes,
   att.global.analytic.attributes,
   att.global.facs.attributes,
   att.global.change.attributes,
   attribute type { data.enumerated }?,
   attribute from { data.pointer }?,
   attribute to { data.pointer }?,
   attribute loc { list { data.word, data.word* } }?,
   (
      model.global*,
      ( lem, model.global*, ( wit, model.global* )? )?,
      (
         ( model.rdgLike, model.global*, ( wit, model.global* )? )
       | ( rdgGrp, model.global*, ( wit, model.global* )? )
      )*
   )
}
Schematron

<sch:assert
 test="count( descendant::tei:lem[ generate-id( current() ) = generate-id( ancestor::tei:app[1] ) ]) < 2">
Only one <lem> element may appear within a single
apparatus entry, whether it appears outside a <rdgGrp>
element or within it.</sch:assert>
Schematron

<sch:assert
 test="count(descendant::tei:rdg[generate-id(current() ) = generate-id(ancestor::tei:app[1])]) > 0">
An <app>
must contain at least one <rdg> element.</sch:assert>
<app>
 <lem wit="#El #Hg">Experience</lem>
 <rdg wit="#La" type="substantive">Experiment</rdg>
 <rdg wit="#Ra2" type="substantive">Eryment</rdg>
</app>
<app type="substantive">
 <rdgGrp type="subvariants">
  <lem wit="#El #Hg">Experience</lem>
  <rdg wit="#Ha4">Experiens</rdg>
 </rdgGrp>
 <rdgGrp type="subvariants">
  <lem wit="#Cp #Ld1">Experiment</lem>
  <rdg wit="#La">Ex<g ref="#per"/>iment</rdg>
 </rdgGrp>
 <rdgGrp type="subvariants">
  <lem>Eriment<wit>[unattested]</wit>
  </lem>
  <rdg wit="#Ra2">Eryment</rdg>
 </rdgGrp>
</app>