Subject: Re: 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
|