<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, abstype, class, copyof, corresp, data, follows, interval, inttype, label, n, next, precedes, prev, resp, sameas, since, synch, type, xml:base, xml:id
absolute(optional)Provides an absolute value for the time point. Value is plain text.
abstype(optional)Specifies the kind of values used in the absolute attribute. Value conforms to data.BETYPE.
class(optional)Contains one or more URIs which denote classification terms that apply to the entity bearing this attribute. One or more values from data.URI, separated by spaces.
copyof(optional)Points to an element of which the current element is a copy. Value conforms to data.URI.
corresp(optional)Used to point to other elements that correspond to this one in a generic fashion. One or more values from data.URI, separated by spaces.
data(optional)Used to link metadata elements to one or more data-containing elements. One or more values from data.URI, separated by spaces.
follows(optional)points to one or more events in a user-defined collection that are known to be predecessors of the current element. One or more values from data.URI, separated by spaces.
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.
inttype(optional)Specifies the kind of values used in the interval attribute. Value conforms to data.BETYPE.
label(optional)Captures text to be used to generate a label for the element to which it's attached, a "tool tip" or prefatory text, for example. Should not be used to record document content. Value of datatype string.
n(optional)Provides a number-like designation that indicates an element's position in a sequence of similar elements. May not contain space characters. Value conforms to data.WORD.
next(optional)Used to point to the next event(s) in a user-defined collection. One or more values from data.URI, separated by spaces.
precedes(optional)Points to one or more events in a user-defined collection that are known to be successors of the current element. One or more values from data.URI, separated by spaces.
prev(optional)Points to the previous event(s) in a user-defined collection. One or more values from data.URI, separated by spaces.
resp(optional)Indicates the agent(s) responsible for some aspect of the text's transcription, editing, or encoding. Its value must point to one or more identifiers declared in the document header. One or more values from data.URI, separated by spaces.
sameas(optional)Points to an element that is the same as the current element but is not a literal copy of the current element. One or more values from data.URI, separated by spaces.
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.
synch(optional)Points to elements that are synchronous with the current element. One or more values from data.URI, separated by spaces.
type(optional)Designation which characterizes the element in some sense, using any convenient classification scheme or typology that employs single-token labels. One or more values of datatype NMTOKEN, separated by spaces.
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.
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.
absolute(optional)Provides an absolute value for the time point. Value is plain text.
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.
abstype(optional)Specifies the kind of values used in the absolute attribute. Value conforms to data.BETYPE.
inttype(optional)Specifies the kind of values used in the interval attribute. Value conforms to data.BETYPE.
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.
(MEI.shared) Attributes common to many elements.
(MEI.shared) Attributes that form the basis of the att.common class.
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.
(MEI.shared) Attributes that uniquely identify an element.
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.
(MEI.shared)
label(optional)Captures text to be used to generate a label for the element to which it's attached, a "tool tip" or prefatory text, for example. Should not be used to record document content. Value of datatype string.
(MEI.shared) Attributes that specify element-to-element relationships.
copyof(optional)Points to an element of which the current element is a copy. Value conforms to data.URI.
corresp(optional)Used to point to other elements that correspond to this one in a generic fashion. One or more values from data.URI, separated by spaces.
follows(optional)points to one or more events in a user-defined collection that are known to be predecessors of the current element. One or more values from data.URI, separated by spaces.
next(optional)Used to point to the next event(s) in a user-defined collection. One or more values from data.URI, separated by spaces.
precedes(optional)Points to one or more events in a user-defined collection that are known to be successors of the current element. One or more values from data.URI, separated by spaces.
prev(optional)Points to the previous event(s) in a user-defined collection. One or more values from data.URI, separated by spaces.
sameas(optional)Points to an element that is the same as the current element but is not a literal copy of the current element. One or more values from data.URI, separated by spaces.
synch(optional)Points to elements that are synchronous with the current element. One or more values from data.URI, separated by spaces.
(MEI.shared) Attributes used to supply a number-like designation for an element.
n(optional)Provides a number-like designation that indicates an element's position in a sequence of similar elements. May not contain space characters. Value conforms to data.WORD.
(MEI.shared) Attributes capturing information regarding responsibility for some aspect of the text's creation, transcription, editing, or encoding.
resp(optional)Indicates the agent(s) responsible for some aspect of the text's transcription, editing, or encoding. Its value must point to one or more identifiers declared in the document header. One or more values from data.URI, separated by spaces.
(MEI.shared) Attributes which can be used to classify features.
type(optional)Designation which characterizes the element in some sense, using any convenient classification scheme or typology that employs single-token labels. One or more values of datatype NMTOKEN, separated by spaces.
(MEI.shared) Attributes which can be used to classify features.
class(optional)Contains one or more URIs which denote classification terms that apply to the entity bearing this attribute. One or more values from data.URI, separated by spaces.
(MEI.shared) Attributes for linking metadata to data.
data(optional)Used to link metadata elements to one or more data-containing elements. One or more values from data.URI, separated by spaces.
Performance component declarations.
absolute(optional)Provides an absolute value for the time point. Value is plain text.
abstype(optional)Specifies the kind of values used in the absolute attribute. Value conforms to data.BETYPE.
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.
inttype(optional)Specifies the kind of values used in the interval attribute. Value conforms to data.BETYPE.
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.
Component declarations that are shared between two or more modules.
class(optional)Contains one or more URIs which denote classification terms that apply to the entity bearing this attribute. One or more values from data.URI, separated by spaces.
copyof(optional)Points to an element of which the current element is a copy. Value conforms to data.URI.
corresp(optional)Used to point to other elements that correspond to this one in a generic fashion. One or more values from data.URI, separated by spaces.
data(optional)Used to link metadata elements to one or more data-containing elements. One or more values from data.URI, separated by spaces.
follows(optional)points to one or more events in a user-defined collection that are known to be predecessors of the current element. One or more values from data.URI, separated by spaces.
label(optional)Captures text to be used to generate a label for the element to which it's attached, a "tool tip" or prefatory text, for example. Should not be used to record document content. Value of datatype string.
n(optional)Provides a number-like designation that indicates an element's position in a sequence of similar elements. May not contain space characters. Value conforms to data.WORD.
next(optional)Used to point to the next event(s) in a user-defined collection. One or more values from data.URI, separated by spaces.
precedes(optional)Points to one or more events in a user-defined collection that are known to be successors of the current element. One or more values from data.URI, separated by spaces.
prev(optional)Points to the previous event(s) in a user-defined collection. One or more values from data.URI, separated by spaces.
resp(optional)Indicates the agent(s) responsible for some aspect of the text's transcription, editing, or encoding. Its value must point to one or more identifiers declared in the document header. One or more values from data.URI, separated by spaces.
sameas(optional)Points to an element that is the same as the current element but is not a literal copy of the current element. One or more values from data.URI, separated by spaces.
synch(optional)Points to elements that are synchronous with the current element. One or more values from data.URI, separated by spaces.
type(optional)Designation which characterizes the element in some sense, using any convenient classification scheme or typology that employs single-token labels. One or more values of datatype NMTOKEN, separated by spaces.
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.
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.
Member of
(when isn't member of any model class)
Contained by
clipDefines a time segment of interest within a recording or within a digital audio or video file.
recordingA recorded performance.
Performance component declarations.
clipDefines a time segment of interest within a recording or within a digital audio or video file.
recordingA recorded performance.
May Contain
(<when> may not have child elements)
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.

Constraints
@since must be present when @interval is used.
The value in @since should correspond to the @xml:id attribute of a when element.
When @interval contains an integer value, @inttype cannot be 'time'.
When @interval contains a time value, @inttype must be 'time'.
When @absolute is present, @abstype should be present or @betype should be present on an ancestor.
@since attribute should have content.
The value in @since should correspond to the @xml:id attribute of a when element.
<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>
Declaration
<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>
<classes>
<memberOf key="att.common"/>
<memberOf key="att.dataPointing"/>
</classes>
<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>
<datatype maxOccurs="1" minOccurs="1">
<rng:ref name="data.BETYPE" />
</datatype>
</attDef>
<attDef ident="inttype" usage="opt">
<desc>Specifies the kind of values used in the interval attribute.</desc>
<datatype maxOccurs="1" minOccurs="1">
<rng:ref name="data.BETYPE" />
</datatype>
</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>
<datatype maxOccurs="1" minOccurs="1">
<rng:ref name="data.URI" />
</datatype>
<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>