<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).
Attributes
@absolute, @abstype, @class, @copyof, @corresp, @data, @follows, @interval, @inttype, @label, @meiversion, @n, @next, @precedes, @prev, @resp, @sameas, @since, @synch, @type, @xml:base, @xml:id
@absolute(optional)Provides an absolute value for the time point.
@abstype(optional)Specifies the kind of values used in the absolute attribute.
@class(optional)Contains one or more URIs which denote classification terms that apply to the entity bearing this attribute.
@copyof(optional)Points to an element of which the current element is a copy.
@corresp(optional)Used to point to other elements that correspond to this one in a generic fashion.
@data(optional)Used to link metadata elements to one or more data-containing elements.
@follows(optional)points to one or more events in a user-defined collection that are known to be predecessors of the current element.
@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.
@inttype(optional)Specifies the kind of values used in the interval attribute.
@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.
@meiversion(recommended)Specifies a generic MEI version label. Allowed values are: "6.0-dev" (Version of MEI), "6.0-dev+anyStart" (Version of MEI All AnyStart customization)
@n(optional)Provides a number-like designation that indicates an element’s position in a sequence of similar elements. May not contain space characters.
@next(optional)Used to point to the next event(s) in a user-defined collection.
@precedes(optional)Points to one or more events in a user-defined collection that are known to be successors of the current element.
@prev(optional)Points to the previous event(s) in a user-defined collection.
@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.
@sameas(optional)Points to an element that is the same as the current element but is not a literal copy of the current element.
@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.
@synch(optional)Points to elements that are synchronous with the current element.
@type(optional)Designation which characterizes the element in some sense, using any convenient classification scheme or typology that employs single-token labels.
@xml:base(optional)Provides a base URI reference with which applications can resolve relative URI references into absolute URI references.
@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.
@absolute(optional)Provides an absolute value for the time point.
@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.
@abstype(optional)Specifies the kind of values used in the absolute attribute.
@inttype(optional)Specifies the kind of values used in the interval attribute.
@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.
(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.
(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.
(MEI.shared) Attributes that record the version of MEI in use.
@meiversion(recommended)Specifies a generic MEI version label. Allowed values are: "6.0-dev" (Version of MEI), "6.0-dev+anyStart" (Version of MEI All AnyStart customization)
(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.
(MEI.shared) Attributes that specify element-to-element relationships.
@copyof(optional)Points to an element of which the current element is a copy.
@corresp(optional)Used to point to other elements that correspond to this one in a generic fashion.
@follows(optional)points to one or more events in a user-defined collection that are known to be predecessors of the current element.
@next(optional)Used to point to the next event(s) in a user-defined collection.
@precedes(optional)Points to one or more events in a user-defined collection that are known to be successors of the current element.
@prev(optional)Points to the previous event(s) in a user-defined collection.
@sameas(optional)Points to an element that is the same as the current element but is not a literal copy of the current element.
@synch(optional)Points to elements that are synchronous with the current element.
(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.
(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.
(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.
(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.
(MEI.shared) Attributes for linking metadata to data.
@data(optional)Used to link metadata elements to one or more data-containing elements.
@absolute(optional)Provides an absolute value for the time point.
@abstype(optional)Specifies the kind of values used in the absolute attribute.
@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.
@inttype(optional)Specifies the kind of values used in the interval attribute.
@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.
@class(optional)Contains one or more URIs which denote classification terms that apply to the entity bearing this attribute.
@copyof(optional)Points to an element of which the current element is a copy.
@corresp(optional)Used to point to other elements that correspond to this one in a generic fashion.
@data(optional)Used to link metadata elements to one or more data-containing elements.
@follows(optional)points to one or more events in a user-defined collection that are known to be predecessors of the current element.
@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.
@meiversion(recommended)Specifies a generic MEI version label. Allowed values are: "6.0-dev" (Version of MEI), "6.0-dev+anyStart" (Version of MEI All AnyStart customization)
@n(optional)Provides a number-like designation that indicates an element’s position in a sequence of similar elements. May not contain space characters.
@next(optional)Used to point to the next event(s) in a user-defined collection.
@precedes(optional)Points to one or more events in a user-defined collection that are known to be successors of the current element.
@prev(optional)Points to the previous event(s) in a user-defined collection.
@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.
@sameas(optional)Points to an element that is the same as the current element but is not a literal copy of the current element.
@synch(optional)Points to elements that are synchronous with the current element.
@type(optional)Designation which characterizes the element in some sense, using any convenient classification scheme or typology that employs single-token labels.
@xml:base(optional)Provides a base URI reference with which applications can resolve relative URI references into absolute URI references.
@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.
Member of
(when isn't member of any model class)
Contained By
<clip>Defines a time segment of interest within a recording or within a digital audio or video file.
<recording>A recorded performance.
<clip>Defines a time segment of interest within a recording or within a digital audio or video file.
<recording>A recorded performance.
May Contain
<extData>Provides a container element for non-MEI data formats.
<extData>Provides a container element for non-MEI data formats.
Remarks

The @data attribute may be used to reference one or more features that occur at this point in time.

The model of this element is based on the when element of the Text Encoding Initiative (TEI).

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.

Declaration
<elementSpec xmlns="http://www.tei-c.org/ns/1.0" rend="add" ident="when" module="MEI.performance">
<desc xml:lang="en">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>
<elementRef key="extData" minOccurs="0" maxOccurs="unbounded"/>
</content>
<constraintSpec ident="check_when_interval" scheme="schematron">
<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="schematron">
<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>
<attDef ident="absolute" usage="opt">
<desc xml:lang="en">Provides an absolute value for the time point.</desc>
<datatype>
<dataRef name="string"/>
</datatype>
</attDef>
<attDef ident="interval" usage="opt">
<desc xml:lang="en">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>
<dataRef key="data.DECIMALORTIMEINTERVAL"/>
</datatype>
</attDef>
<attDef ident="abstype" usage="opt">
<desc xml:lang="en">Specifies the kind of values used in the absolute attribute.</desc>
<datatype>
<dataRef key="data.BETYPE"/>
</datatype>
</attDef>
<attDef ident="inttype" usage="opt">
<desc xml:lang="en">Specifies the kind of values used in the interval attribute.</desc>
<datatype>
<dataRef key="data.BETYPE"/>
</datatype>
</attDef>
<attDef ident="since" usage="opt">
<desc xml:lang="en">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>
<dataRef key="data.URI"/>
</datatype>
<constraintSpec ident="check_sinceTarget" scheme="schematron">
<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 xml:lang="en">
<p>The <att>data</att> attribute may be used to reference one or more features that occur at this point in time.</p>
</remarks>
<remarks xml:lang="en">
<p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-when.html">when</ref> element of the Text Encoding Initiative (TEI).</p>
</remarks>
</elementSpec>