<classSpec ident="att.custos.log" module="MEI.shared" type="atts">
<desc xml:lang="en">Logical domain attributes.</desc>
<attList>
<attDef ident="target" usage="opt">
<desc xml:lang="en">Encodes the target note when its pitch differs from the pitch at which the custos
appears.</desc>
<constraintSpec ident="check_custosTarget" scheme="schematron">
<constraint>
<sch:rule context="mei:custos/@target">
<sch:assert role="warning" test="not(normalize-space(.) eq '')">@target attribute
should have content.</sch:assert>
<sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:note/@xml:id">The value in @target should correspond to the @xml:id attribute of a note
element.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
</attDef>
</attList>
</classSpec>