Root element name not declared

"Martin v. Löwis" martin at v.loewis.de
Tue Oct 23 17:37:15 EDT 2007


> <?xml version="1.0"?>
> <!DOCTYPE MyMessage SYSTEM "mymessage.dtd">
> <MyMessage release="2.0">
>
[...]
> <!ENTITY % MyMessage                  "">
> ,,,,,
[...]
> Being both the file and the dtd provided by the supplier, I believe
> they're correct so I don't understand what's wrong. MyMessage IS
> declared... isn't it sufficient?

No. MyMessage is declared above as a Parameter Entity (PE), not
as an element. Look for definitions that start with <!ELEMENT.
Also, look for for occurrences of IGNORE around any such definition.

If you see MyMessage used, try to find out what it's "normal"
definition is; the definition you gave is IGNOREd unless
UsingLocalNames is defined to INCLUDE (which I assume it is not).
For example, if there was the fragment

<!ENTITY % MyMessage "Envelope">

<!ELEMENT %MyMessage; (From|To)>

then the name of the root element would not be MyMessage, but
Envelope.

HTH,
Martin



More information about the Python-list mailing list