Suppose I have the following short document:
<!DOCTYPE doc [
<!ATTLIST doc a CDATA "D4A">
<!ENTITY % x SYSTEM "x.ent">
%x;
<!ATTLIST doc b CDATA "D4B">
]>
<doc>Hello.</doc>
If a non-validating processor reads this, and chooses not to read the external entity x (which is just fine), then when it reads the document, it must tell the application that it saw something like:
<doc a="D4A">
That is, it is required to use the default attribute information for the attribute a, but forbidden to do so for b.
This makes perfect sense, if you consider that x.ent might have contained the following:
<!ATTLIST doc b CDATA "Tantric">
In this case, giving the attribute b the default value D4B would simply be wrong.
Copyright © 1998, Tim Bray. All rights reserved.