<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
Module linking — 16 Linking, Segmentation, and Alignment
In addition to global attributes In addition to global attributes
absolute supplies an absolute value for the time.
Status Recommended when applicable
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>.
unit specifies the unit of time in which the interval value is expressed, if this is not inherited from the parent timeline.
Status Recommended when applicable
Datatype

<rng:ref name="data.enumerated"/>
data.enumerated
Suggested values include:
d
(days)
h
(hours)
min
(minutes)
s
(seconds)
ms
(milliseconds)
interval specifies the numeric portion of a time interval
Status Recommended when applicable
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.
since identifies 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 Recommended when applicable
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
May contain Empty element
Declaration

<rng:element name="when">
 <rng:ref name="att.global.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,
   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.