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