<sch:rule context="mei:fTrem[@beams and @beams.float]">
<sch:assert test="@beams.float <= @beams">The number of floating beams must be less
than or equal to the total number of beams.</sch:assert>
</sch:rule>
<classSpec ident="att.fTrem.vis" module="MEI.visual" type="atts">
<desc>Visual domain attributes.</desc>
<attList org="group">
<attDef ident="beams" usage="opt">
<desc>Indicates the number of beams present.</desc>
<datatype maxOccurs="1" minOccurs="1">
<rng:data type="positiveInteger">
<rng:param name="minInclusive">1</rng:param>
<rng:param name="maxInclusive">6</rng:param>
</rng:data>
</datatype>
</attDef>
<attDef ident="beams.float" usage="opt">
<desc>Captures the number of "floating" beams, i.e., those not attached to stems.</desc>
<datatype maxOccurs="1" minOccurs="1">
<rng:data type="nonNegativeInteger"/>
</datatype>
<constraintSpec ident="check_beams.floating" scheme="isoschematron">
<constraint>
<sch:rule context="mei:fTrem[@beams and @beams.float]">
<sch:assert test="@beams.float <= @beams">The number of floating beams must be less
than or equal to the total number of beams.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
</attDef>
<attDef ident="float.gap" usage="opt">
<desc>Records the amount of separation between floating beams and stems.</desc>
</attDef>
</attList>
</classSpec>