The subject? Xindice, XML Namespaces and the Xerces 2 parser.
We've been fairly successful in using the new Xindice (NEE dbXML), which
comes delivered with its own jar files for Xerces 1.4.3, xalan 2.0.1.
We've replaced some of those existing jars with Xerces 2 and the Xalan
2.2D14. But we have a namespace bug.
Last night we finalized a "soft freeze" on a project using Xindice, and had
to file a bug against our code and hardwire a workaround because we've been
losing 'xmlns' and 'xmlns:foo' declarations. When setting the parser up, I've
tried both true and false on "http://xml.org/sax/features/namespace-prefixes"
with true always on namespace awareness. This is AFAIK the fix that Tom added
to the code in the CVS tree, which we've just duplicated on our end. [One
of our problems is that we've had difficulty getting the CVS distribution
of Xindice behind our firewall, so we're using 1.0rc1 and bugfixing as we
go.]
I switched my code checking for specific attributes from something akin to:
String id = element.getAttributeNS("foo","id");
to
String id = element.getAttribute("foo:id");
so that things work, but this is really incorrect namespace processing,
which we can't leave in for our "hard freeze." I've watched the SAX messages
go by, and looked at what comes out of the database. If markup went in as
<foo:element xmlns:foo="http://www.foo.com/fur/">
it comes out as
<foo:element foo="http://www.foo.com/fur/">
which throws an exception because of a null namespace. We're currently
ignoring that exception.
We're using the Xindice compressed DOM. Is there any way around this?
Thanks,
Murray
...........................................................................
Murray Altheim <mailto:murray.altheim@sun.com>
XML Technology Center, Java and XML Software
Sun Microsystems, Inc., MS MPK17-102, 1601 Willow Rd., Menlo Park, CA 94025
Rally against the evils of iceburg lettuce!
Grab a kitchen knife and join the Balsamic Jihad!