<choice> groups a number of alternative encodings for the same point in a text. [3.4 Simple Editorial Changes]
Modulecore — Elements Available in All TEI Documents
Attributesatt.global (@xml:id, @n, @xml:lang, @xml:base, @xml:space) (att.global.rendition (@rend, @style, @rendition)) (att.global.linking (@corresp, @synch, @sameAs, @copyOf, @next, @prev, @exclude, @select)) (att.global.analytic (@ana)) (att.global.facs (@facs)) (att.global.change (@change)) (att.global.responsibility (@cert, @resp))
Member of
Contained by
analysis: cl pc phr s span w
figures: cell figDesc
iso-fs: fDescr fsDescr
linking: ab seg
spoken: u writing
tagdocs: eg valDesc
verse: metSym rhyme
May contain
linking: seg
transcr: am ex

Because the children of a choice element all represent alternative ways of encoding the same sequence, it is natural to think of them as mutually exclusive. However, there may be cases where a full representation of a text requires the alternative encodings to be considered as parallel.

Note also that choice elements may self-nest.

Where the purpose of an encoding is to record multiple witnesses of a single work, rather than to identify multiple possible encoding decisions at a given point, the app element and associated elements discussed in section 12.1 The Apparatus Entry, Readings, and Witnesses should be preferred.


An American encoding of Gulliver's Travels which retains the British spelling but also provides a version regularized to American spelling might be encoded as follows.

<p>Lastly, That, upon his solemn oath to observe all the above
articles, the said man-mountain shall have a daily allowance of
meat and drink sufficient for the support of <choice>
 </choice> of our subjects,
with free access to our royal person, and other marks of our
Content model
 <alternate minOccurs="0"

  <classRef key="model.choicePart"/>
  <elementRef key="choice"/>
Schema Declaration
<rng:element name="choice">
 <rng:ref name="att.global.attributes"/>
 <rng:ref name="att.global.rendition.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:ref name="att.global.responsibility.attributes"/>
   <rng:ref name="model.choicePart"/>
   <rng:ref name="choice"/>
element choice
   ( model.choicePart | choice )*