<app>

<app> (voce dell'apparato) contiene una singola voce in un apparato critico, con un lemma facoltativo e almeno una lettura [12.1.1 The Apparatus Entry]
Modulotextcrit — 12 Critical Apparatus
Attributiatt.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))
typeclassifica la variazione contenuta in tale elemento secondo una tipologia funzionale
Stato Opzionale
Tipo di dati

<rng:ref name="data.enumerated"/>
data.enumerated
Valori 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.)
fromidentifica, se necessario, l'inizio del lemma nel testo base
Stato Opzionale
Tipo di dati

<rng:ref name="data.pointer"/>
data.pointer
Valori any valid identifier
toidentifica, se necessario, la fine del lemma nel testo base
Stato Opzionale
Tipo di dati

<rng:ref name="data.pointer"/>
data.pointer
Valori any valid identifier
loc (posizione) indica la posizione della variante in caso di utilizzo del metodo di indicazione della posizione della variante nella codifica dell'apparato
Stato Opzionale
Tipo di dati 1–∞ occorrenze di 

<rng:ref name="data.word"/>
data.word
separato da spazio bianco
Valori A string containing a canonical reference for the passage to which the variation applies.
Usato da
Contenuto in
Può contenere
Dichiarazione

<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>
Esempio
<app>
 <lem wit="#El #Hg">Experience</lem>
 <rdg wit="#La" type="substantive">Experiment</rdg>
 <rdg wit="#Ra2" type="substantive">Eryment</rdg>
</app>
Esempio
<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>