String interning

Miles Sabin msabin at
Tue Jan 18 10:24:47 GMT 2000

Toby Speight wrote,
> This also allows consumers to push a SAX interner (a filter) 
> onto the producer, so that all output from the filter is 
> interned. This needs to be done just once, at setup time, so 
> no other part of the consumer is affected.  And there's no 
> overhead added if the producer generates interned names.
> boolean namesAreInterned =
>  xmlReader.getFeature
>    ("");
> if (namesAreInterned)
>   xmlReader = new SAXInterner(xmlReader);
> // The 'interned-names' feature will always be true at this 
> // point.
> // Now add the handlers...

This is the nicest solution yet ... if you're handlers depend
on String.intern() and the parser doesn't guarantee that, then
slip an intern'ing adapter around the parser.

But shouldn't the marked line read,

 if (!namesAreInterned)
   xmlReader = new SAXInterner(xmlReader);



Miles Sabin                       Cromwell Media
Internet Systems Architect        5/6 Glenthorne Mews
+44 (0)20 8817 4030               London, W6 0LJ, England
msabin at

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: or CD-ROM/ISBN 981-02-3594-1
Please note: New list subscriptions now closed in preparation for transfer to OASIS.

More information about the Xml-dev mailing list