[jdom-interest] Reading the xml:base attribute

Michael Kay mike at saxonica.com
Thu Jan 6 05:44:38 PST 2005

JDOM doesn't offer a method signature

   getAttribute(String lname, String uri)

instead one has to do

   getAttribute(String lname, Namespace.getNamespace(uri))

But this fails if the uri happens to be the XML URI, e.g. if you're trying
to read xml:base. In this case you need to do

   getAttribute(String name, Namespace.XML_NAMESPACE)

Why should an application retrieving an attribute in the XML namespace need
to handle this differently from an attribute in any other namespace?

Suggestion: Namespace.getNamespace(uri) when the uri is the XML namespace
should not fail, but should return Namespace.XML_NAMESPACE. 

Incidentally, I assume the prefix in the Namespace object makes no
difference to the results of getAttribute(), but the documentation doesn't
make this clear.

Also, I've always assumed that Namespace.getNamespace("") returns the
non-namespace, and indeed (looking at the source code) it does, but I now
see that there's nothing in the documentation to justify this assumption.

Michael Kay

More information about the jdom-interest mailing list