RE: [xsl] copying xmlns: attribute

Subject: RE: [xsl] copying xmlns: attribute
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 31 Mar 2005 15:05:43 +0100
In the XPath data model, namespaces are not attributes. So @* doesn't select
them. To copy namespaces you need to use xsl:copy-of select="namespace::*" 

However if instead of

<xsl:variable name="rootnode" select="name(.)"/>
<xsl:element name="{$rootnode}">

you do

<xsl:copy>

then namespaces will be copied automatically. (In fact, one of the reasons
for using xsl:element in preference to xsl:copy is when you don't want
namespaces copied.)

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

> -----Original Message-----
> From: omprakash.v@xxxxxxxxxxxxx [mailto:omprakash.v@xxxxxxxxxxxxx] 
> Sent: 31 March 2005 14:06
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] copying xmlns: attribute
> 
> 
> Hi,
> 
>       Got this far by myself.
> 
>          Iam using the following code to copy an element 
> along with its
> attibutes to the result tree from a context node which is 
> elsewhere in the
> document. The context node is in fact the root element. 
> However, the xmlns:
> attribute is not getting copied.
> 
>    <xsl:template match="/">
>      <xsl:for-each select="//root/*[1]">
>      <xsl:variable name="rootnode" select="name(.)"/>
>      <xsl:element name="{$rootnode}">
>      <xsl:copy-of select="@*"/>
>      <xsl:apply-templates select="/" mode="inside">
>           <xsl:with-param name="rootnode" select="$rootnode"/>
>      </xsl:apply-templates>
> 
>      </xsl:element>
>      </xsl:for-each>
>    </xsl:template>
> 
> 
> I have used xsl:copy-of select="@*" earlier and I know that it copies
> xmlns: attributes.
> Also, in the inner call to apply-templates, I have to select 
> "/" once again
> with a different mode as otherise only one node is getting 
> copied if I use
> @*|node()
> 
> My xhtml snippet is as follows:
> 
> <table>
> <tr>
> <root>
> <slideshow xmlns="urn:hl7-org/v3" title="Sample Slide Show" 
> date="Date of
> publication" author="Yours Truly">
> <td><a href="file:///">
> 
> :
> :
> :
> 
> </slideshow>
> 
> Hoping to get a quick reply.
> 
> Cheers,
> Omprakash.V
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> This e-Mail may contain proprietary and confidential 
> information and is sent for the intended recipient(s) only. 
> If by an addressing or transmission error this mail has been 
> misdirected to you, you are requested to delete this mail immediately.
> You are also hereby notified that any use, any form of 
> reproduction, dissemination, copying, disclosure, modification,
> distribution and/or publication of this e-mail message, 
> contents or its attachment other than by its intended 
> recipient/s is strictly prohibited.
> 
> Visit Us at http://www.polaris.co.in

Current Thread