This XQuery demonstrates the problem:
(:--------:) let $xmlBaseAtt as attribute() := attribute {'xml:base'}{'/foo/bar.xml'} let $transformed1 as element() := try { $doc1 transform with { insert node $xmlBaseAtt into .} } catch * { <error code="{$err:code}" desc="{$err:description}" object="doc1"/> }
let $transformed2 as element() := try { $doc2 transform with { insert node $xmlBaseAtt into .} } catch * { <error code="{$err:code}" desc="{$err:description}" object="doc2"/> }
return ( ``[No @base attribute:]`` ,$transformed1 ,``[Has @base attribute:]`` ,$transformed2 ,() ) (:--------:)
The results I get with 10.6 are:
No @base attribute: <root xml:base="/foo/bar.xml"/> Has @base attribute: <error code="err:XUDY0021" desc="Duplicate attribute name: xml:base." object="doc2"/>
It looks like the transform processor is matching @xml:base to @base even though they are different attributes.
Is this a bug or is there a different way I should be specifying the @xml:base attribute?
This is an issue because @base is a DITA-defined attribute that occurs on elements on which I need to set @xml:base (which is how I found the problem).
Cheers,
Eliot
_____________________________________________ Eliot Kimber Sr Staff Content Engineer O: 512 554 9368 M: 512 554 9368 servicenow.comhttps://www.servicenow.com LinkedInhttps://www.linkedin.com/company/servicenow | Twitterhttps://twitter.com/servicenow | YouTubehttps://www.youtube.com/user/servicenowinc | Facebookhttps://www.facebook.com/servicenow