Hi,
I use <xsl:copy-of select="./*"/> to select child elements
of a node which passes <xsl:when>. However copy-of is
inserting
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance with
each child element it selects.
In XSLT 2.0 you can copy an element without copying its namespaces using the
copy-namespaces="no" attribute.
In XSLT 1.0 the answer is no. xsl:copy-of copies a tree unchanged, which
includes its namespace nodes (remember that in the data model, an element
has namespace nodes corresponding to all in-scope namespaces, including
those declared on ancestor elements). You only remedy is not to use
xsl:copy-of, but to do a manual copy using a modified identity template:
<xsl:template match="*">
<xsl:element name="{name()}" namespace="{namespace-uri()}">
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
Michael Kay
http://www.saxonica.com/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--