<ossia>

Captures original notation and a differently notated version *present in the source being transcribed*.
Module
MEI.cmn
Attributes
class, copyof, corresp, facs, follows, label, n, next, precedes, prev, resp, sameas, synch, type, xml:base, xml:id
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.
facs(optional)Permits the current element to reference a facsimile surface or image zone which corresponds to it. 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.
(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.facsimile) Attributes that associate a feature corresponding with all or part of an image.
facs(optional)Permits the current element to reference a facsimile surface or image zone which corresponds to it. One or more values from data.URI, separated by spaces.
(MEI.cmn) Logical domain attributes.
(MEI.visual) Visual domain attributes.
(MEI.gestural) Gestural domain attributes.
(MEI.analytical) Analytical domain attributes.
Facsimile component declarations.
facs(optional)Permits the current element to reference a facsimile surface or image zone which corresponds to it. One or more values from data.URI, separated by spaces.
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.
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
model.ossiaLikeGroups elements that function like ossia.
Contained by
(MEI.cmn) Groups elements that function like ossia.
(MEI.cmn) Groups elements that may appear within a CMN measure.
measureUnit of musical time consisting of a fixed number of note values of a given type, as determined by the prevailing meter, and delimited in musical notation by bar lines.
(MEI.shared) Groups elements that are components of a staff.
oStaff(ossia staff) – A staff that holds an alternative passage which may be played instead of the original material.
staffA group of equidistant horizontal lines on which notes are placed in order to represent pitch or a grouping element for individual 'strands' of notes, rests, etc. that may or may not actually be rendered on staff lines; that is, both diastematic and non-diastematic signs.
Common Music Notation (CMN) repertoire component declarations.
measureUnit of musical time consisting of a fixed number of note values of a given type, as determined by the prevailing meter, and delimited in musical notation by bar lines.
oStaff(ossia staff) – A staff that holds an alternative passage which may be played instead of the original material.
Component declarations that are shared between two or more modules.
staffA group of equidistant horizontal lines on which notes are placed in order to represent pitch or a grouping element for individual 'strands' of notes, rests, etc. that may or may not actually be rendered on staff lines; that is, both diastematic and non-diastematic signs.
May Contain
oLayer(ossia layer) – A layer that contains an alternative to material in another layer.
oStaff(ossia staff) – A staff that holds an alternative passage which may be played instead of the original material.
(MEI.shared) Groups elements that function as notational layers within a staff.
layerAn independent stream of events on a staff.
(MEI.shared) Groups elements that function like staves.
staffA group of equidistant horizontal lines on which notes are placed in order to represent pitch or a grouping element for individual 'strands' of notes, rests, etc. that may or may not actually be rendered on staff lines; that is, both diastematic and non-diastematic signs.
Common Music Notation (CMN) repertoire component declarations.
oLayer(ossia layer) – A layer that contains an alternative to material in another layer.
oStaff(ossia staff) – A staff that holds an alternative passage which may be played instead of the original material.
Component declarations that are shared between two or more modules.
layerAn independent stream of events on a staff.
staffA group of equidistant horizontal lines on which notes are placed in order to represent pitch or a grouping element for individual 'strands' of notes, rests, etc. that may or may not actually be rendered on staff lines; that is, both diastematic and non-diastematic signs.
Remarks

The alternative material in an ossia often provides a simpler, easier-to-perform option, while at other times the alternate material provides indications of performance practice, such as ornamentation. Often an ossia is rendered above the main staff on a reduced-size staff. Sometimes the alternate material occurs on the same staff as the primary text, but in a separate layer. In this case, the alternative material is often rendered in small-sized notation.

Constraints
In a measure, ossia may only contain staff and oStaff elements.
In a staff, ossia may only contain layer and oLayer elements.
<sch:rule context="mei:measure/mei:ossia">
<sch:assert test="count(mei:*) = count(mei:staff)+count(mei:oStaff)">In a measure, ossia may only contain staff and oStaff elements.</sch:assert>
</sch:rule>
<sch:rule context="mei:staff/mei:ossia">
<sch:assert test="count(mei:*) = count(mei:layer)+count(mei:oLayer)">In a staff, ossia may only contain layer and oLayer elements.</sch:assert>
</sch:rule>
Declaration
<elementSpec ident="ossia" module="MEI.cmn">
<desc>Captures original notation and a differently notated version
<hi rend="bold">*present in the source being transcribed*</hi>
.</desc>
<classes>
<memberOf key="att.common"/>
<memberOf key="att.facsimile"/>
<memberOf key="att.ossia.log"/>
<memberOf key="att.ossia.vis"/>
<memberOf key="att.ossia.ges"/>
<memberOf key="att.ossia.anl"/>
<memberOf key="model.ossiaLike"/>
</classes>
<content>
<rng:choice>
<rng:group>
<rng:oneOrMore>
<rng:ref name="oStaff" />
</rng:oneOrMore>
<rng:oneOrMore>
<rng:ref name="model.staffLike" />
</rng:oneOrMore>
</rng:group>
<rng:group>
<rng:oneOrMore>
<rng:ref name="oLayer" />
</rng:oneOrMore>
<rng:oneOrMore>
<rng:ref name="model.layerLike" />
</rng:oneOrMore>
</rng:group>
</rng:choice>
</content>
<constraintSpec ident="Check_ossia" scheme="isoschematron">
<constraint>
<sch:pattern>
<sch:rule context="mei:measure/mei:ossia">
<sch:assert test="count(mei:*) = count(mei:staff)+count(mei:oStaff)">In a measure, ossia may only contain staff and oStaff elements.</sch:assert>
</sch:rule>
<sch:rule context="mei:staff/mei:ossia">
<sch:assert test="count(mei:*) = count(mei:layer)+count(mei:oLayer)">In a staff, ossia may only contain layer and oLayer elements.</sch:assert>
</sch:rule>
</sch:pattern>
</constraint>
</constraintSpec>
<remarks>
<p part="N">The alternative material in an ossia often provides a simpler, easier-to-perform option, while at other times the alternate material provides indications of performance practice, such as ornamentation. Often an ossia is rendered above the main staff on a reduced-size staff. Sometimes the alternate material occurs on the same staff as the primary text, but in a separate layer. In this case, the alternative material is often rendered in small-sized notation.</p>
</remarks>
</elementSpec>