<sch:rule context="mei:*[@midi.instrname]">
<sch:assert test="not(@midi.instrnum)">Only one of @midi.instrname and @midi.instrnum
allowed.</sch:assert>
</sch:rule>
<sch:rule context="mei:*[@midi.patchname]">
<sch:assert test="not(@midi.patchnum)">Only one of @midi.patchname and @midi.patchnum
allowed.</sch:assert>
</sch:rule>
<classSpec ident="att.midiInstrument" module="MEI.midi" type="atts">
<desc>Attributes that record MIDI instrument information.</desc>
<constraintSpec ident="One_of_instrname_or_instrnum" scheme="isoschematron">
<constraint>
<sch:rule context="mei:*[@midi.instrname]">
<sch:assert test="not(@midi.instrnum)">Only one of @midi.instrname and @midi.instrnum
allowed.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
<constraintSpec ident="One_of_patchname_or_patchnum" scheme="isoschematron">
<constraint>
<sch:rule context="mei:*[@midi.patchname]">
<sch:assert test="not(@midi.patchnum)">Only one of @midi.patchname and @midi.patchnum
allowed.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
<attList org="group">
<attDef ident="midi.instrnum" usage="opt">
<desc>Captures the General MIDI instrument number. Use an integer for a 0-based value. An
integer preceded by "in" indicates a 1-based value.</desc>
</attDef>
<attDef ident="midi.instrname" usage="opt">
<desc>Provides a General MIDI label for the MIDI instrument.</desc>
</attDef>
<attDef ident="midi.pan" usage="opt">
<desc>Sets the instrument's position in a stereo field. MIDI values of 0 and 1 both pan
left, 127 or 128 pans right, and 63 or 64 pans to the center. Positve percentage values
pan to the right, negative ones to the left. 0% is centered.</desc>
</attDef>
<attDef ident="midi.patchname" usage="opt">
<desc>Records a non-General MIDI patch/instrument name.</desc>
<datatype maxOccurs="1" minOccurs="1">
<rng:data type="NMTOKEN"/>
</datatype>
</attDef>
<attDef ident="midi.patchnum" usage="opt">
<desc>Records a non-General MIDI patch/instrument number.</desc>
</attDef>
<attDef ident="midi.volume" usage="opt">
<desc>Sets the instrument's volume.</desc>
</attDef>
</attList>
</classSpec>