<classSpec ident="att.extSym.names" module="MEI.externalsymbols" type="atts">
<desc xml:lang="en">Attributes that specify names or values taken from an external symbol authority.</desc>
<attList>
<attDef ident="glyph.name" usage="opt">
<desc xml:lang="en">Glyph name.</desc>
<datatype>
<rng:data type="string"/>
</datatype>
<constraintSpec ident="check_glyph.name" scheme="schematron">
<constraint>
<sch:rule context="@glyph.name">
<sch:assert role="warning" test="not(normalize-space(.) eq '')">@glyph.name attribute
should have content.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
</attDef>
<attDef ident="glyph.num" usage="opt">
<desc xml:lang="en">Numeric glyph reference in hexadecimal notation,
<abbr>e.g.</abbr>, "#xE000" or "U+E000". N.B. SMuFL
version 1.18 uses the range U+E000 - U+ECBF.</desc>
<constraintSpec ident="check_glyph.num" scheme="schematron">
<constraint>
<sch:rule context="mei:*[@glyph.num and (lower-case(@glyph.auth) eq 'smufl' or @glyph.uri eq 'http://www.smufl.org/')]">
<sch:assert role="warning" test="matches(normalize-space(@glyph.num), '^(#x|U\+)E([0-9AB][0-9A-F][0-9A-F]|C[0-9A][0-9A-F]|CB[0-9A-F])$')">SMuFL version 1.18 uses the range U+E000 - U+ECBF.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
</attDef>
</attList>
</classSpec>