<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
}