<when>

Indicates a point in time either absolutely (using the absolute attribute), or relative to another when element (using the since, interval and inttype attributes).
Module MEI.performance
Attributes
@absolute(optional)Provides an absolute value for the time point. Value is plain text. when
@abstype(optional)Specifies the kind of values used in the absolute attribute. Value conforms to data.BETYPE. when
@data(optional)Used to link metadata elements to one or more data-containing elements. One or more values from data.URI, separated by spaces. att.datapointing
@interval(optional)Specifies the time interval between this time point and the one designated by the since attribute. This attribute can only be interpreted meaningfully in conjunction with the inttype attribute. Value must either conform to a decimal number no smaller than 1 or time. when
@inttype(optional)Specifies the kind of values used in the interval attribute. Value conforms to data.BETYPE. when
@label(optional)Provides a name or label for an element. The value may be any string. Value of datatype string. att.commonPart
@n(optional)Provides a number-like designation for an element. Value conforms to token. att.common
@since(optional)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. The value should be the ID of another when element within the same parent element. If the since attribute is omitted and the absolute attribute is not specified, then the reference point is understood to be the immediately preceding when element. Value conforms to data.URI. when
@xml:base(optional)Provides a base URI reference with which applications can resolve relative URI references into absolute URI references. Value conforms to data.URI. att.commonPart
@xml:id(optional)Regularizes the naming of an element and thus facilitates building links between it and other resources. Each id attribute within a document must have a unique value. Value of datatype ID. att.id
Member of
Contained by
MEI.performanceclip recording
May contain
Empty
Declaration
<classes>
<memberOf key="att.common"/>
<memberOf key="att.datapointing"/>
</classes>
<content>
<rng:empty/>
</content>
Remarks

The data attribute may be used to reference one or more features that occur at this point in time. This element is modelled on an element in the Text Encoding Initiative (TEI) standard.

Constraint
@since should be present when @interval is used.
The value in @since should correspond to the @xml:id attribute of a when element.
@inttype should be present when @interval is used.
When @interval contains an integer value, @inttype cannot be 'time'.
When @interval contains a time value, @inttype must be 'time'.
<sch:rule context="mei:when[@interval]">
<sch:assert role="warning" test="@since">@since should be present when @interval is used.</sch:assert>
<sch:assert role="warning" test="every $i in tokenize(@since, '\s+') satisfies substring($i,2)=//mei:when/@xml:id">The value in @since should correspond to the @xml:id attribute of a when element.</sch:assert>
<sch:assert role="warning" test="@inttype">@inttype should be present when @interval is used.</sch:assert>
</sch:rule>
<sch:rule context="mei:when[matches(@interval, '^[0-9]+$')]">
<sch:assert test="not(@inttype eq 'time')">When @interval contains an integer value, @inttype cannot be 'time'.</sch:assert>
</sch:rule>
<sch:rule context="mei:when[matches(@interval, ':')]">
<sch:assert test="@inttype eq 'time'">When @interval contains a time value, @inttype must be 'time'.</sch:assert>
</sch:rule>
Constraint
When @absolute is present, @abstype should be present or @betype should be present on an ancestor.
<sch:rule context="mei:when[@absolute]">
<sch:assert role="warning" test="@abstype or ancestor::mei:*[@betype]">When @absolute is present, @abstype should be present or @betype should be present on an ancestor.</sch:assert>
</sch:rule>
Constraint
@since attribute should have content.
The value in @since should correspond to the @xml:id attribute of a when element.
<sch:rule context="@since">
<sch:assert role="warning" test="not(normalize-space(.) eq '')">@since attribute should have content.</sch:assert>
<sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:when/@xml:id">The value in @since should correspond to the @xml:id attribute of a when element.</sch:assert>
</sch:rule>