<elementSpec ident="fing" module="MEI.fingering">
<gloss versionDate="2023-06-16" xml:lang="en">finger</gloss>
<desc xml:lang="en">An individual finger in a fingering indication.</desc>
<classes>
<memberOf key="att.common"/>
<memberOf key="att.facsimile"/>
<memberOf key="att.fing.anl"/>
<memberOf key="att.fing.ges"/>
<memberOf key="att.fing.log"/>
<memberOf key="att.fing.vis"/>
<memberOf key="model.fingeringLike"/>
</classes>
<content>
<rng:zeroOrMore>
<rng:choice>
<rng:text/>
<rng:ref name="model.textPhraseLike.limited"/>
<rng:ref name="model.editLike"/>
<rng:ref name="model.transcriptionLike"/>
</rng:choice>
</rng:zeroOrMore>
</content>
<constraintSpec ident="fing_start-type_attributes_required" scheme="schematron">
<constraint>
<sch:rule context="mei:fing[not(ancestor::mei:fingGrp)]">
<sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the
attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
<constraintSpec ident="stack_exclusion" scheme="schematron">
<!-- Exclusion implemented using Schematron -->
<constraint>
<sch:rule context="mei:fing">
<sch:assert test="not(descendant::mei:stack)">The stack element is not allowed as a
descendant of fing.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
</elementSpec>