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