<sch:rule context="@resp">
<sch:assert role="warning" test="not(normalize-space(.) eq '')">@resp attribute should
have content.</sch:assert>
<sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*[ancestor::mei:meiHead]/@xml:id">The value in @resp should correspond to the @xml:id attribute of an element within
the metadata header.</sch:assert>
</sch:rule>
<classSpec ident="att.responsibility" module="MEI.shared" type="atts">
<desc>Attributes capturing information regarding responsibility for some aspect of the text's
creation, transcription, editing, or encoding.</desc>
<attList org="group">
<attDef ident="resp" usage="opt">
<desc>Indicates the agent(s) responsible for some aspect of the text's transcription,
editing, or encoding. Its value must point to one or more identifiers declared in
the
document header.</desc>
<constraintSpec ident="check_respTarget" scheme="isoschematron">
<constraint>
<sch:rule context="@resp">
<sch:assert role="warning" test="not(normalize-space(.) eq '')">@resp attribute should
have content.</sch:assert>
<sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*[ancestor::mei:meiHead]/@xml:id">The value in @resp should correspond to the @xml:id attribute of an element within
the metadata header.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
</attDef>
</attList>
</classSpec>