编辑:虽然有这个
https://github.com/libexpat/libexpat/blob/5f1f1f1d98fef39ef885d4271029b4c3fd814a2d/expat/tests/runtests.c#L993
START_TEST(test_attr_whitespace_normalization)
{
const char *text =
"<!DOCTYPE doc [\n"
" <!ATTLIST doc\n"
" attr NMTOKENS #REQUIRED\n"
" ents ENTITIES #REQUIRED\n"
" refs IDREFS #REQUIRED>\n"
"]>\n"
"<doc attr=' a b c\t\td\te\t' refs=' id-1 \t id-2\t\t' \n"
" ents=' ent-1 \t\r\n"
" ent-2 ' >\n"
" <e id='id-1'/>\n"
" <e id='id-2'/>\n"
"</doc>";
(编辑前...)
规范不清楚,我能找到的对 ENTITIES 的唯一参考是公共标识符的 RFC3151 URN 描述,格式为“-//{owner}//{class} {description}//”;这来自 OASIS 而不是 W3,iirc。
但你可能已经想通了..
见
例子
/etc/xml/docbook-xml.xml
<delegatePublic publicIdStartString="-//OASIS//ENTITIES DocBook Notations V4.4//EN"
catalog="file:///usr/share/xml/docbook/schema/dtd/4.4/catalog.xml"/>
<delegatePublic publicIdStartString="-//OASIS//ELEMENTS DocBook Document Hierarchy V4.2//EN"
catalog="file:///usr/share/xml/docbook/schema/dtd/4.2/catalog.xml"/>
/usr/share/xml/docbook/schema/dtd/4.4/catalog.xml
<public publicId="-//OASIS//ENTITIES DocBook Notations V4.4//EN"
uri="dbnotnx.mod"/>
<public publicId="-//OASIS//ENTITIES DocBook Character Entities V4.4//EN"
uri="dbcentx.mod"/>
dbcentx.mod
<![%sgml.features;[
<!ENTITY % ISOamsa.module "INCLUDE">
<![ %ISOamsa.module; [
<!ENTITY % ISOamsa PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN">
]]>
<!ENTITY % ISOamsb.module "INCLUDE">
<![ %ISOamsb.module; [
<!ENTITY % ISOamsb PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN">
]]>