Effect Of Bypassing External Parameter Entities

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.

Back-link to spec

Copyright © 1998, Tim Bray. All rights reserved.