<when>

<when> indicates a point in time either relative to other elements in the same timeline tag, or absolutely. [16.5.2 Placing Synchronous Events in Time]
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))
absolutesupplies an absolute value for the time.
Status Optional
Datatype

<rng:ref name="data.temporal.w3c"/>
data.temporal.w3c
Note
This attribute should always be specified on a when element which serves as the target for the origin attribute of a <timeLine>.
unitspecifies the unit of time in which the interval value is expressed, if this is not inherited from the parent timeline.
Status Optional
Datatype

<rng:ref name="data.enumerated"/>
data.enumerated
Suggested values include:
d
(days)
h
(hours)
min
(minutes)
s
(seconds)
ms
(milliseconds)
intervalspecifies the numeric portion of a time interval
Status Optional
Datatype

<rng:choice>
 <rng:data type="float">
  <rng:param name="minExclusive">0</rng:param>
 </rng:data>
 <rng:value>unknown</rng:value>
</rng:choice>
xsd:float { minExclusive = "0" } | "unknown"
Values a positive number, or the special value unknown.
Note
The value unknown indicates uncertainty about the interval.
sinceidentifies the reference point for determining the time of the current when element, which is obtained by adding the interval to the time of the reference point.
Status Optional
Datatype

<rng:ref name="data.pointer"/>
data.pointer
Values Should point to another when element in the same timeline.
Note
If this attribute is omitted, and the absolute attribute is not specified, then the reference point is understood to be the origin of the enclosing timeline tag.
Used by
Contained by
linking: timeline
May containEmpty element
Declaration

<rng:element name="when">
 <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="absolute">
   <rng:ref name="data.temporal.w3c"/>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="unit">
   <rng:choice>
    <rng:value>d</rng:value>
    <rng:value>h</rng:value>
    <rng:value>min</rng:value>
    <rng:value>s</rng:value>
    <rng:value>ms</rng:value>
    <rng:data type="Name"/>
   </rng:choice>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="interval">
   <rng:choice>
    <rng:data type="float">
     <rng:param name="minExclusive">0</rng:param>
    </rng:data>
    <rng:value>unknown</rng:value>
   </rng:choice>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="since">
   <rng:ref name="data.pointer"/>
  </rng:attribute>
 </rng:optional>
 <rng:empty/>
</rng:element>
element when
{
   att.global.attributes,
   att.global.linking.attributes,
   att.global.analytic.attributes,
   att.global.facs.attributes,
   att.global.change.attributes,
   attribute absolute { data.temporal.w3c }?,
   attribute unit { "d" | "h" | "min" | "s" | "ms" | xsd:Name }?,
   attribute interval { xsd:float { minExclusive = "0" } | "unknown" }?,
   attribute since { data.pointer }?,
   empty
}
Example
<when xml:id="TW3" interval="20" since="#w2"/>
Note
On this element, the global xml:id attribute must be supplied to specify an identifier for this point in time. The value used may be chosen freely provided that it is unique within the document and is a syntactically valid name. There is no requirement for values containing numbers to be in sequence.