<sch:rule context="@altsym">
<sch:assert role="warning" test="not(normalize-space(.) eq '')">@altsym attribute
should have content.</sch:assert>
<sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:symbolDef/@xml:id">The value in @altsym should correspond to the @xml:id attribute of a symbolDef
element.</sch:assert>
<sch:assert test="not(substring(., 2) eq ancestor::mei:symbolDef/@xml:id)">The value
in @altsym must not correspond to the @xml:id attribute of a symbolDef
ancestor.</sch:assert>
</sch:rule>
<classSpec ident="att.altSym" module="MEI.usersymbols" type="atts">
<desc>Attributes supplying pointers to user-defined symbols.</desc>
<attList org="group">
<attDef ident="altsym" usage="opt">
<desc>Provides a way of pointing to a user-defined symbol. It must contain a reference to
an
ID of a
<gi scheme="MEI">symbolDef</gi> element elsewhere in the document.</desc>
<constraintSpec ident="check_altsymTarget" scheme="isoschematron">
<constraint>
<sch:rule context="@altsym">
<sch:assert role="warning" test="not(normalize-space(.) eq '')">@altsym attribute
should have content.</sch:assert>
<sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:symbolDef/@xml:id">The value in @altsym should correspond to the @xml:id attribute of a symbolDef
element.</sch:assert>
<sch:assert test="not(substring(., 2) eq ancestor::mei:symbolDef/@xml:id)">The value
in @altsym must not correspond to the @xml:id attribute of a symbolDef
ancestor.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
</attDef>
</attList>
</classSpec>