Re: [xsl] creating nodes using multiple templates/modes

Subject: Re: [xsl] creating nodes using multiple templates/modes
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 27 Mar 2006 00:16:47 +0100
>I came up with the following XSLT 2.0 using Saxon 8.7.  This script
> modifies a UML tree serialized as XMI

XSL never modifies a tree in place. If you make an identiy transform
with xsl:copy and xsl:copy-of, then these instructions, as their names
imply creat copies of the original nodes in a new tree.
xsl:apply-templates (and other xpath expressions) select into the
original unchanged source tree.

If you want to do a two stage transformation then that is possible in
xslt2 (which you are using) (in xslt1 it required the common node-set
extension function).

Just store the result of the first transform in a variable then apply
templates to that. This is logically tehsame as having two stylesheets
and writing out an intermediate result, but its usually more convenient
and efficient to do it in one stylesheet.

<xsl:variable name="x">
  <xsl:apply-templates mode="a"/>
</xsl:variable>
<xsl:apply-templates select="$x" mode="b"/>

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

Current Thread