Re: Undeclared elements error

James Clark (jjc@jclark.com)
Thu, 17 Sep 1998 13:55:56 +0700


Liam R. E. Quin wrote:

> Should the following produce a warning?
>
> <!ELEMENT CHAPTER (LOCATION,DESCRIPTION)>
> <!--* error: LOCATION has not been declared *-->
> <!--* error: DESCRIPTION has not been declared *-->
>
> <!ELEMENT LOCATION (#PCDATA)>
> <!ELEMENT DESCRIPTION (#PCDATA)>

Absolutely not.

> It seems to me that the intended interpretation is that the warning should
> only be issued after all declarations have been processed,

Right.

> but this
> is nowhere stated, and the interpretation suggested by my comments
> above appears to be legal.

A processor can issue any warnings it wants, but it's ridiculous to
interpret the XML spec as recommending something so stupid. Since you
can have mutually recursive content models, it wouldn't even always be
possible to reorder the declarations in a DTD so as to avoid such a
warning.

James