<alt>

<alt> (alternation) identifies an alternation or a set of choices among elements or passages. [16.8 Alternation]
Modulelinking — 16 Linking, Segmentation, and Alignment
Attributesatt.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)) att.pointing (@targetLang, @target, @evaluate) att.typed (@type, @subtype)
targetsspecifies the identifiers of the alternative elements or passages.
Status Optional
Datatype 2–∞ occurrences of 

<rng:ref name="data.pointer"/>
data.pointer
separated by whitespace
Values Each value specified must be the same as that specified as value for an xml:id attribute for some other element in the current document.
Note
This attribute is deprecated. It is retained for backward compatibility only; the attribute target should be used for preference. It is an error to supply both attributes, but one or the other must be present.
modestates whether the alternations gathered in this collection are exclusive or inclusive.
Status Recommended
Datatype

<rng:ref name="data.enumerated"/>
data.enumerated
Legal values are:
excl
(exclusive) indicates that the alternation is exclusive, i.e. that at most one of the alternatives occurs.
incl
(inclusive) indicates that the alternation is not exclusive, i.e. that one or more of the alternatives occur.
weightsIf mode is excl, each weight states the probability that the corresponding alternative occurs. If mode is incl each weight states the probability that the corresponding alternative occurs given that at least one of the other alternatives occurs.
Status Optional
Datatype 2–∞ occurrences of 

<rng:ref name="data.probability"/>
data.probability
separated by whitespace
Values a whitespace-separated list of probability values in the range from 0 to 1.
Note
If mode is excl, the sum of weights must be 1. If mode is incl, the sum of weights must be in the range from 0 to the number of alternants.
Used by
Contained by
analysis: cl m phr s span w
figures: cell figure table
linking: ab altGrp seg
nets: graph
spoken: u writing
tagdocs: valDesc
textcrit: app lem rdg wit witDetail
verse: metSym rhyme
May containEmpty element
Declaration

<rng:element name="alt">
 <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:ref name="att.pointing.attributes"/>
 <rng:ref name="att.typed.attributes"/>
 <rng:optional>
  <rng:attribute name="targets">
   <rng:list>
    <rng:ref name="data.pointer"/>
    <rng:ref name="data.pointer"/>
    <rng:zeroOrMore>
     <rng:ref name="data.pointer"/>
    </rng:zeroOrMore>
   </rng:list>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="mode">
   <rng:choice>
    <rng:value>excl</rng:value>
    <rng:value>incl</rng:value>
   </rng:choice>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="weights">
   <rng:list>
    <rng:ref name="data.probability"/>
    <rng:ref name="data.probability"/>
    <rng:zeroOrMore>
     <rng:ref name="data.probability"/>
    </rng:zeroOrMore>
   </rng:list>
  </rng:attribute>
 </rng:optional>
 <rng:empty/>
</rng:element>
element alt
{
   att.global.attributes,
   att.global.linking.attributes,
   att.global.analytic.attributes,
   att.global.facs.attributes,
   att.global.change.attributes,
   att.pointing.attributes,
   att.typed.attributes,
   attribute targets { list { data.pointer, data.pointer, data.pointer* } }?,
   attribute mode { "excl" | "incl" }?,
   attribute weights
   {
      list { data.probability, data.probability, data.probability* }
   }?,
   empty
}
Schematron

<s:report test="@target and @targets">You may not supply both
@target and @targets</s:report>
Schematron

<s:report test="not(@target) and not(@targets)">You must
supply either @target or @targets</s:report>
Schematron

<s:assert test="contains(@target,' ')">You must supply at least two
values for @target</s:assert>
Example
<alt mode="excl" target="#we.fun #we.sun" weights="0.5 0.5"/>