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.
<elementSpec ident="staffGrp" module="MEI.shared">
<gloss xml:lang="en">staff group</gloss>
<desc xml:lang="en">A group of bracketed or braced staves.</desc>
<classes>
<memberOf key="att.common"/>
<memberOf key="att.facsimile"/>
<memberOf key="att.metadataPointing"/>
<memberOf key="att.staffGrp.anl"/>
<memberOf key="att.staffGrp.ges"/>
<memberOf key="att.staffGrp.log"/>
<memberOf key="att.staffGrp.vis"/>
<memberOf key="model.staffGrpLike"/>
</classes>
<content>
<rng:oneOrMore>
<rng:choice>
<rng:ref name="model.staffGrpLike"/>
<rng:ref name="model.staffDefLike"/>
</rng:choice>
</rng: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>
<remarks xml:lang="en">
<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>