RE: [xsl] Change Namespace of element and children

Subject: RE: [xsl] Change Namespace of element and children
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 31 Aug 2005 21:27:31 +0100
You can change the namespace for MySubElement1 in exactly the same way as
you changed the namespace for MyElement. It won't happen automatically: the
namespace of an element is determined entirely by the way you create that
element, and not by the namespace of its new parent.

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Kevin L. Cobb [mailto:kevin.cobb@xxxxxxxxxxxx] 
> Sent: 31 August 2005 20:33
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Change Namespace of element and children
> 
> 
> Hi All, new to the list but not new to XSLT.
>  
> I want to change the namespace of an element using XSLT. My 
> problem is,
> I can change the namepsace of a single element easily by doing a
> template match and then simply re-adding the element and 
> specifying the
> new namespace ... like so:
>  
>    <xsl:template match="MyElement">
>       <xsl:element name="MyElement" 
> namespace="http://www.mystuff.com";>
>          <xsl:apply-templates select="@*|*|text()"/>
>       </xsl:element>
>    </xsl:template>
> 
> But, the problem is, child elements of MyElement end up with 
> the default
> (empty) namespace ... like so:
>  
> <MyElement xmlns=http://www.mystuff.com";>
>     <MySubElement1 xmlns="">12345</MySubElement1>
>     <MySubElement2 xmlns="">12345</MySubElement2>
> </MyELement>
>  
>  
> Any ideas? 
>  
> Thanks,
>  
> - Kevin

Current Thread