Re: [xsl] Namespace missing after transform

Subject: Re: [xsl] Namespace missing after transform
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 8 Sep 2006 13:24:19 +0100
> When I copy it using the following xsl template the xmlns:xs reference
> is missing.

If you had copied the element the namespaces woul dhave been copied, but
instead you generated (using xsl:element) a new element of the sam
ename. (The main reason for using xsl:element in this way is to _avoid_
copying namespaces when that is needed:-)

Don't use 

	<xsl:element name="elem">

use 
<xsl:copy>

similarly instead of

	<xsl:attribute name="xsi:type"
			xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
	
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
			<xsl:value-of select="@xsi:type"/>
		</xsl:attribute>

You could use
 <xsl:copy-of select="@xsi:type"/>

actually in this case, since you are also copying the content you can
just copy the whole node:

<xsl:template match="elem">
 <xsl:copy-of select="."/>
</xsl:template>
 
David

Current Thread