xsl-list
[Top] [All Lists]

Re: Understanding Identity Transformations

2005-02-11 23:05:50
Read a good book and also these examples from Dave Pawson's XSL-FAQ:

   http://www.dpawson.co.uk/xsl/sect2/identity.html

   http://www.dpawson.co.uk/xsl/sect2/N1930.html


Cheers,
Dimitre Novatchev


On Fri, 11 Feb 2005 15:56:58 -0700, Karl Stubsjoen 
<kstubs(_at_)gmail(_dot_)com> wrote:
Seems like this is pretty standard:

SAMPLE_001:
<xsl:template match="node()|@*">
 <xsl:copy>
   <xsl:apply-templates select="@*"/>
   <xsl:apply-templates/>
 </xsl:copy>
</xsl:template>

But then I've also seen this:

SAMPLE_002:
<xsl:template match="/ | @* | node()">
  <xsl:copy>
    <xsl:apply-templates select="@* | node()"/>
  </xsl:copy>
</xsl:template>

How do they compare?  I make not of the SAMPLE_001 within the xsl:copy
there are 2 apply templates, what does each do?

Then, understanding what is happening, is the following sample true
that this will strip an XML doc of all attribute elements?

SAMPLE_003:
<xsl:template match="*">
 <xsl:copy>
   <xsl:apply-templates select="*"/>
 </xsl:copy>
</xsl:template>

And finally, when I identity transform the following my document i
quadrupled in size, but I though I was following standard practices
from previous example.

SAMPLE_004:
<xsl:template match="*">
 <xsl:copy>
   <xsl:apply-templates select="*"/>
   <xsl:apply-templates />
 </xsl:copy>
</xsl:template>

Ahh, I think I understand what is going on in SAMPLE_004 (please
confirm) I am basically applying templates for all nodes twice and in
the case of lets say SAMPLE_001 the first apply-templates simply gets
all attributes, the 2nd then gets all nodes.  We'd call this a
recursive call on the node set?

Karl

--~------------------------------------------------------------------
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>
--~--



--~------------------------------------------------------------------
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>
--~--