Hi team,

The default behaviour of a SAX parser when encountering an xmlns:xxx
namespace declaration is to call ContentHandler.startPrefixMapping(),
and to remove this attribute from the Attributes object passed to
startElemnt().

But Cocoon code also sets the "namespace-prefixes" feature each time it
creates a Parser. This has the effect of also passing xmlns:xxx in the
Attributes (see ContentHandler.startElement() javadocs for more
details).

What is the reason for enabling this feature ? I guess this was a try to
circumvent a long-standing (still present) bug in Xalan's serializer
which doesn't output properly namespace declarations if they're not
present as attributes in the incoming SAX stream. However, this wasn't
the solution and I patched several months ago AbstractTextSerializer to
make Xalan happy.

Now I'm using Saxon for some parts of our apps and this one barks on
each and every xmlns:xxx attribute it encounters when reading
stylesheets. So I locally removed the namespace-prefixes feature : this
fixes Saxon problems and doesn't hurt Xalan (it needs them only for
proper serialization).

So, team, what about not enabling the "namespace-prefix" feature and
thus keep the default behaviour of SAX parsers ?

+1 from me.

Sylvain.

-- 
Sylvain Wallez
Anyware Technologies - http://www.anyware-tech.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to