[jdom-interest] handling xml:space attribute

Gabor Greif gabor at no.netopia.com
Mon Jun 19 05:08:31 PDT 2000

I have a problem with xml:space and xml:language.

These are standard attributes if I read the spec correctly.
However JDOM b4 only lets me add this to an element as an attribute if I
also specify the namespace for the attribute.

Now I do something like this:

elem.addAttribute(new Attribute("space", "preserve",
Namespace.getNamespace("xml", "myURI")));

the prettyprinted tag looks like this:

  <ostype name="id" xmlns:xml="myURI" xml:space="preserve">0</ostype>

I want to get rid of the xmlns:xml="myURI" attribute.

For this I tried to introduce the namespace in the root element by adding
(before the above):

doc.getRootElement().addAttribute(new Attribute("xmlns", "myURN",
Namespace.getNamespace("xml", "myURI")));

This led to (relevant part shown):

<pane xmlns:xml="myURI" xml:xmlns="myURN">
  <ostype name="id" xmlns:xml="myURI" xml:space="preserve">0</ostype>

Now the <ostype> tag still contains xmlns:xml="myURI"


Of course attribute name validation wont let me add 
elem.addAttribute("xml:space", "preserve");

as it would be natural for these special attributes.

I have the impression that xml:space and xml:language should be
special-cased in Verifier.checkAttributeName and accepted as a regular name
without namespace magic...

I am stumped. Can somebody tell how I can suppress the xmlns:xml="myURI" in
tags not on toplevel?

Thanks in advance,


More information about the jdom-interest mailing list