[jdom-interest] Deprecating some XMLOutputter constructors

guru at stinky.com guru at stinky.com
Tue Jun 19 17:02:26 PDT 2001

> This was a problem with the terminology used.  We had called it getTextTrim
> but in the case of mixed content, we were in fact normalizing in a somewhat
> non standard way.  We believe that trim should just be string.trim on the
> current node and the getNormalizedText should do what this means in the xml
> sense.  So that's where all this came from.  I don't remember the date but
> it should be documented in the archives and in the Element change logs.

Oh!  I didn't realize getNormalizedText() had been added.

I think there should still be a setTrim() method in addition to
setNormalize() (hey, I think I just resolved the ordering naming
problem!), to parallel Element.

I remember a patch (by Brad Morgan) being inserted into XMLOutputter
that stripped interior whitespace.  I just checked, and it's still in
there!  This is probably a bug.  At best it's redundant. 

Hmm... Opened a can of worms here...

Turns out XMLOutputter is using StringTokenizer to normalize.  This
means it's using " \t\n\r\f" instead of just " \t\n\r".  It's also a
little less efficient.  Unfortunately, it can't just call
Element.getNormalizedText(), since that method (a) expands CDATA into
text, and (b) doesn't deal with other nested elements.

I just fixed it, I think.  I'll post a patch soon.

Alex Chaffee                       mailto:alex at jguru.com
jGuru - Java News and FAQs         http://www.jguru.com/alex/
Creator of Gamelan                 http://www.gamelan.com/
Founder of Purple Technology       http://www.purpletech.com/
Curator of Stinky Art Collective   http://www.stinky.com/

More information about the jdom-interest mailing list