<staffGrp>

Module
Attributes
@bar.thru, @instr, @label, @symbol, @type, @xml:id
@bar.thru(optional)Indicates whether bar lines go across the space between staves (true) or are only drawn across the lines of each staff (false).
@instr(optional)Provides a way of pointing to a MIDI instrument definition. It must contain the ID of an <instrDef> element elsewhere in the document.
@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.
@symbol(optional)Specifies the symbol used to group a set of staves. Allowed values are: "brace" (Curved symbol, , {.), "bracket" (Square symbol, , [, but with curved/angled top and bottom segments.), "bracketsq" (Square symbol, , [, with horizontal top and bottom segments.), "line" (Line symbol, , |, (wide) line without top and bottom curved/horizontal segments.), "none" (Grouping symbol missing.)
@type(optional)Designation which characterizes the element in some sense, using any convenient classification scheme or typology that employs single-token labels.
@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 common to many elements.
(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)
@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 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.visual) Visual domain attributes.
@bar.thru(optional)Indicates whether bar lines go across the space between staves (true) or are only drawn across the lines of each staff (false).
(MEI.shared) Attributes that describe the symbol used to group a set of staves.
@symbol(optional)Specifies the symbol used to group a set of staves. Allowed values are: "brace" (Curved symbol, , {.), "bracket" (Square symbol, , [, but with curved/angled top and bottom segments.), "bracketsq" (Square symbol, , [, with horizontal top and bottom segments.), "line" (Line symbol, , |, (wide) line without top and bottom curved/horizontal segments.), "none" (Grouping symbol missing.)
(MEI.gestural) Gestural domain attributes.
(MEI.midi) Attributes which identify a MIDI instrument.
@instr(optional)Provides a way of pointing to a MIDI instrument definition. It must contain the ID of an <instrDef> element elsewhere in the document.
@instr(optional)Provides a way of pointing to a MIDI instrument definition. It must contain the ID of an <instrDef> element elsewhere in the document.
@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.
@symbol(optional)Specifies the symbol used to group a set of staves. Allowed values are: "brace" (Curved symbol, , {.), "bracket" (Square symbol, , [, but with curved/angled top and bottom segments.), "bracketsq" (Square symbol, , [, with horizontal top and bottom segments.), "line" (Line symbol, , |, (wide) line without top and bottom curved/horizontal segments.), "none" (Grouping symbol missing.)
@type(optional)Designation which characterizes the element in some sense, using any convenient classification scheme or typology that employs single-token labels.
@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.
@bar.thru(optional)Indicates whether bar lines go across the space between staves (true) or are only drawn across the lines of each staff (false).
Member of
model.staffGrpLikeGroups elements that permit declaration of staff group properties.
Contained By
(MEI.shared) Groups elements that permit declaration of staff group properties.
May Contain
– (<staffGrp> may not have child elements)
Remarks

System is the more proper name for this concept (Read, p. 37-38). Bracketed staff groups may contain other bracketed or braced staff groups or single staves. See Read, p. 35-38, examples p. 434, 438.

Constraints

Each staffDef must have a unique value for the n attribute.
Each staffDef must have a unique value for the n attribute.

Declaration
<elementSpec xmlns="http://www.tei-c.org/ns/1.0" rend="add" ident="staffGrp" module="MEI.shared">
<gloss xml:lang="en">staff group</gloss>
<desc rend="replace">(staff group) – A group of bracketed or braced staves.</desc>
<classes>
<memberOf key="att.common"/>
<memberOf key="att.staffGrp.vis"/>
<memberOf key="att.staffGrp.ges"/>
<memberOf key="model.staffGrpLike"/>
</classes>
<content>
<zeroOrMore>
<choice>
<ref name="model.labelLike"/>
</choice>
</zeroOrMore>
<zeroOrMore>
<ref name="model.instrDefLike"/>
</zeroOrMore>
<oneOrMore>
<choice>
<ref name="model.staffGrpLike"/>
<ref name="model.staffDefLike"/>
</choice>
</oneOrMore>
</content>
<constraintSpec ident="Check_staffGrp_unique_staff_n_values" scheme="schematron">
<constraint>
<sch:rule context="mei:staffGrp">
<sch:let name="countstaves" value="count(descendant::mei:staffDef)"/>
<sch:let name="countuniqstaves" value="count(distinct-values(descendant::mei:staffDef/@n))"/>
<sch:assert test="$countstaves eq $countuniqstaves">Each staffDef must have a unique value for the n attribute.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
<constraintSpec ident="Check_staffGrp_unique_staff_n_values" scheme="schematron">
<constraint>
<sch:rule context="mei:staffGrp">
<sch:let name="countstaves" value="count(descendant::mei:staffDef)"/>
<sch:let name="countuniqstaves" value="count(distinct-values(descendant::mei:staffDef/@n))"/>
<sch:assert test="$countstaves eq $countuniqstaves">Each staffDef must have a unique value for the n attribute.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
<remarks>
<p>System is the more proper name for this concept (Read, p. 37-38). Bracketed staff groups may contain other bracketed or braced staff groups or single staves. See Read, p. 35-38, examples p. 434, 438.</p>
</remarks>
</elementSpec>