As you point out your solution is similar to the "identity template"
at Michaels "XSLT2.0", Page 243, which i didn't mentioned
before. I wonder why he uses "@*|node()" instead of "*" for
the matching. If it matches an attribute (@*) what would the
template do with it? Your solution using "*" seems to me more
logical and does the job too. The question is: why?
There are two variants of the identity template in common use. This version:
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
processes all *elements* by copying them, and can be overridden for
individual elements.
This version:
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
processes all *nodes* by copying them, and can be overridden for individual
elements, attributes, comments, processing instructions, or text nodes.
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>
--~--