<elementSpec rend="add" ident="graceGrp" module="MEI.cmn"><gloss xml:lang="en">grace group</gloss>
<desc xml:lang="en">A container for a sequence of grace notes.</desc>
<classes>
<memberOf key="att.common"/>
<memberOf key="att.graceGrp.log"/>
<memberOf key="att.graceGrp.vis"/>
<memberOf key="model.eventLike.cmn"/>
</classes>
<content>
<zeroOrMore><choice><ref name="model.eventLike"/>
<ref name="model.eventLike.cmn"/>
<ref name="model.appLike"/>
<ref name="model.editLike"/>
<ref name="model.transcriptionLike"/></choice></zeroOrMore>
</content>
<constraintSpec ident="When_not_copyof_graceGrp_content" scheme="schematron">
<constraint>
<sch:rule context="mei:graceGrp[not(@copyof)]">
<sch:assert test="count(descendant::*[local-name()='note' or local-name()='rest' or local-name()='chord'
or local-name()='space']) > 0">A graceGrp without a copyof attribute must have at least 1 note, rest, chord, or space
descendants.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
<constraintSpec ident="When_graced" scheme="schematron">
<constraint>
<sch:rule context="mei:graceGrp[@grace]">
<sch:assert test="not(descendant::mei:*[@grace])">The grace attribute is not allowed on
descendants of a graceGrp with a grace attribute.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec></elementSpec>