[jdom-interest] making XMLOutputter DTD-aware

Paul Libbrecht paul at activemath.org
Tue Jul 26 08:05:40 PDT 2005


hello list,

I gave some cycles into making XMLOutputter DTD-aware.
The reason for doing so is that we write XML-files with a dtd-reference 
with a large set of hidden information encoded in the DTD such as 
namespace for almost all elements. Most of these are attribute default 
values.
Only using such an outputter I can claim that our authors' files are 
not changed too dramatically. Otherwise, each line is made twice as big 
and completely unreadable.

Clearly using a finer-grained parsing (that would report wether an 
attribute is present or only "implied") would bring it all... but such 
fine-grained lexical analysis isn't available as far as I know.

So I just adapted XMLOutputter to prevent the output of attributes of 
namespaces if equivalent to the DTD-specified values... seems to be 
working fine.

I'd love providing this to the project. It is relying on Mark Wutka's 
DTD parser, now with an Apache-style-license, which is the only usable 
DTD-parser I found.
Where could I drop such a submission ?

Also I would have wished to subclass XMLOutputter but this turned out 
to be impossible... there are too many private methods that needed to 
be either re-used or overridden... not sure if that's solvable. 
Currently, I just added "setDtd" and modified XMLOuputter's methods 
directly.

paul



More information about the jdom-interest mailing list