This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Adding namespace nodes question


> Suppose I have this XML:
>
> <elem name="myElem">
>  <ns type="own" prefix="">http://www.domain1.org/ns</ns>
>  <ns type="extra" prefix="pre2">http://www.domain2.org/ns</ns>
>  <ns type="extra" prefix="pre3">http://www.domain3.org/ns</ns>
> </elem>
>
> Which actually represents the this XML:
>
> <myElem xmlns="http://www.domain1.org/ns";
>  xmlns:pre2="http://www.domain2.org/ns";
>  xmlns:pre3="http://www.domain3.org/ns"; />
>
> What is the most efficient method to add these namespaces to
> the element
> in the result tree?

AFAIK the only way to add a namespace node to the result tree, when the
namespace isn't present in either the source document or the stylesheet, is
to create an element on a temporary tree that uses that namespace, and then
use xsl:copy[-of] to copy the namespace node from the temporary tree to the
result tree. Even this relies on (a) the errata to XSLT 1.0, and (b) the
xx:node-set() extension.

<xsl:variable name="temp">
  <xsl:element name="{$prefix}.temp" namespace="{.}"/>
</xsl:variable>

<xsl:copy-of select="xx:node-set()/*/namespace::*"/>

Mike Kay


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]