← Prev in month ← Prev in thread

Why are erroneous ENTITY declarations not caught in XML validation?

From
Costello, Roger L. <>
To
"" <>
Date
2012-10-23T09:32:08Z
ID
<>
Thread
Why are erroneous ENTITY declarations not caught in XML validation?
Hi Folks,

I have an ENTITY declaration prior to the root element:

-------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY address "(&mailbox;|&group;)">
<!ELEMENT root (#PCDATA)>
]>
<root></root>
-------------------------------------------------------

Notice that the address ENTITY references two other ENTITIES, neither of which are present.

I validate the XML document and the parser (XERCES) reports that it is *valid*.

Why?

Now, if I try to *use* the address ENTITY inside <root>, then I get an error:

-------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY address "(&mailbox;|&group;)">
<!ELEMENT root (#PCDATA)>
]>
<root>&address;</root>
-------------------------------------------------------

Why is the XML document valid when I don't use the address ENTITY, but invalid when I do use the address ENTITY?

Where is this issue discussed in the XML specification?

/Roger
← Prev in month ← Prev in thread