The org.apache.xerces.readers.XCatalog class uses an invalid XCatalog-DTD.

1)
The following line in the DTD mixes CDATA and Default values
"
Version CDATA (0.1 | 0.2) "0.2"
"

This is incorrect according to the spec. You should replace it with

"
Version (0.1 | 0.2) "0.2"
"

or
"
Version CDATA #FIXED "0.2"
"

2)
The definition
"
<!ELEMENT XCatalog ANY>
"
can also be considered a bad habit. Why don't you use
"
<!ELEMENT XCatalog
        (Map|Remap|Delegate|Extend|Base)* >
>
"
I would assume this could help the parser to check the correctness. In any
case, it helps a human reader of the DTD to see whats going on (It isn't
crucial for a tiny DTD like this - only cosmetics).

3)
The declaration
"<?xml version="1.0" encoding="US-ASCII"?>"
is a form of american imperialism, I personally don't like. This little line
forces me to use 7-BIT clean filesnames for my Windows filesnames, because a
HRef like "file:///c:/Hällo/Hühner.xml" would have to be translated to
"file:///c:/Haello/Huehner.xml" - come on, we are not in the Seventies. Use
"<?xml version="1.0" encoding="ISO-8859-1"?>"
instead!

4)
I would also suggest that you don't use mixed cases for the attribute
definitions. This is only a potential source of errors, especially since the
tag-names are not really compound words

Armin

Reply via email to