ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Igor Peshansky <ig...@us.ibm.com>
Subject Re: QName in DynamicAttributeNS
Date Tue, 13 Jun 2006 14:56:55 GMT
Steve Loughran wrote on 06/13/2006 06:24:45 AM:

> I'm now looking at the namespace aware dynamic attribute stuff
> 
> The qname parameter for this is built up as follows:
>                  String qName = ("".equals(uri)
>                                  ? localName : (uri + ":" + localName));
> 
> 
> this is not how, say, Qname.toString() presents qnames, which is 
> {http://example.org}tag
> 
> I'd change it, but then I looked at how XmlFragment handled it, which it 

> does by handing it off to the Dom element
> 
>                  e.setAttributeNS(uri, qName, value);
> 
> I dont use classic DOM. but from what the javadocs imply, this appears 
> wrong. the qname that Element.setAttributeNS() seems to want is a 
> classic prefix:value tuple, like "xmlns:name" or "ant:example".
> 
> So really we should pass down the prefix and localname, as the uri comes 

> down in the namespace URI param:
> 
>                  String qName = ("".equals(uri)
>                                  ? localName : (prefix + ":" + 
localName));
> 
> Am I right here? This is not shipping code so we have time to correct 
> it, but I'd need input from someone who knows Dom intimately enough to 
> get it right. Me, I use Xom :)
> 
> -steve

Steve,

Yes, you are correct.  The prefix value is not used when serializing 
and/or
comparing QNames.  The setAttributeNS method extracts the prefix part from
the qName parameter and sets it on the Attr node (whether new or 
existing).
The prefix is optional -- you should be able to simply pass the localName
in, independent of whether the namespace is present.

What I'm surprised at is that not only is this not shipping code, this 
code
is apparently not exercised at all, since the two implementations I looked
at will throw an exception if you try to use the URI as the prefix in the
way that the code you quoted does.
        Igor
-- 
Igor Peshansky  (note the spelling change!)
IBM T.J. Watson Research Center
XJ: No More Pain for XML's Gain (http://www.research.ibm.com/xj/)


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Mime
View raw message