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.
<sch:rule context="mei:when[@interval]">
<sch:assert test="@since">@since must 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: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>
<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>
<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>
<elementSpec ident="when" module="MEI.performance">
<desc>Indicates a point in time either absolutely (using the absolute attribute), or relative
to
another when element (using the since, interval and inttype attributes).</desc>
<content>
<rng:empty/>
</content>
<constraintSpec ident="check_when_interval" scheme="isoschematron">
<constraint>
<sch:rule context="mei:when[@interval]">
<sch:assert test="@since">@since must 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: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>
</constraintSpec>
<constraintSpec ident="check_when_absolute" scheme="isoschematron">
<constraint>
<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>
</constraintSpec>
<attList org="group">
<attDef ident="absolute" usage="opt">
<desc>Provides an absolute value for the time point.</desc>
<datatype maxOccurs="1" minOccurs="1">
<rng:text/>
</datatype>
</attDef>
<attDef ident="interval" usage="opt">
<desc>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.</desc>
<datatype maxOccurs="1" minOccurs="1">
<rng:choice>
<rng:data type="decimal">
<rng:param name="minInclusive">1</rng:param>
</rng:data>
<rng:data type="time"/>
</rng:choice>
</datatype>
</attDef>
<attDef ident="abstype" usage="opt">
<desc>Specifies the kind of values used in the absolute attribute.</desc>
</attDef>
<attDef ident="inttype" usage="opt">
<desc>Specifies the kind of values used in the interval attribute.</desc>
</attDef>
<attDef ident="since" usage="opt">
<desc>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.</desc>
<constraintSpec ident="check_sinceTarget" scheme="isoschematron">
<constraint>
<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>
</constraint>
</constraintSpec>
</attDef>
</attList>
<remarks>
<p part="N">The
<att scheme="TEI">data</att> attribute may be used to reference one or more features that occur at
this point in time.</p>
</remarks>
<remarks>
<p part="N">This element is modelled on an element in the Text Encoding Initiative (TEI) standard.</p>
</remarks>
</elementSpec>