Subject: Re: Strict sequential identity rule?
From: andrew welch <andrew.j.welch@xxxxxxxxx>
Date: Wed, 21 Sep 2005 15:54:05 +0100
|
On 9/21/05, Dimitre Novatchev <dnovatchev@xxxxxxxxx> wrote:
> Hi,
> I think that trying to answer the following question can be interesting and
> useful for the members of our community.
>
> Is the following statement true or false:
>
> "The transformation below is an identity transformation":
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output omit-xml-declaration="yes"/>
> <xsl:template match="@* | node()">
> <xsl:copy>
> <xsl:apply-templates select="@*"/>
> <xsl:apply-templates select="node()[1]"/>
> </xsl:copy>
> <xsl:apply-templates
select="following-sibling::node()[1]"/>
> </xsl:template>
> </xsl:stylesheet>
On 9/21/05, Dimitre Novatchev <dnovatchev@xxxxxxxxx> wrote:
> Hi,
> I think that trying to answer the following question can be interesting and
> useful for the members of our community.
>
> Is the following statement true or false:
>
> "The transformation below is an identity transformation":
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output omit-xml-declaration="yes"/>
> <xsl:template match="@* | node()">
> <xsl:copy>
> <xsl:apply-templates select="@*"/>
> <xsl:apply-templates select="node()[1]"/>
> </xsl:copy>
> <xsl:apply-templates
select="following-sibling::node()[1]"/>
> </xsl:template>
> </xsl:stylesheet>
I would say "yes" as it walks the tree in exactly the same way as the
standard identity transform.
The only difference here that I can see is that a no-op template would
stop all output on the following axis, instead of the descendant axis,
but I think that's just something to be aware of and not enough to say
this isn't an identity transform.
I hope this isn't going to be an anti-climax Dimitre...
|