[xsl] When exactly is the current node changed?

Subject: [xsl] When exactly is the current node changed?
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Wed, 15 Nov 2006 21:39:44 -0800

When explaining the XSLT 1.0 processing model the specification says:

"   A node is processed by finding all the template rules with
patterns that match the node, and choosing the best amongst them; the
chosen rule's template is then instantiated with the node as the
current node"

It is not strictly specified when exactly the current node changes
from the node that is current in the context in which the
xsl:apply-templates is located, to one of the nodes of the node-set
specified in the select attribute of the xsl:apply-templates

Will it be correct to think that the change of the current node
happens when xsl:apply-templates is still being interpreted (before
starting the interpretation of the selected matching template)?

Or is it correct that the current node changes only when the matching
template has been instantiated?

And what is the argumentation for the answer?

While such a question may seem too academic, in practice the answer to
it may influence the implementation of a particular XSLT processor or
other XSLT-related tools.

Dimitre Novatchev
Truly great madness cannot be achieved without significant intelligence.
To invent, you need a good imagination and a pile of junk
You've achieved success in your field when you don't know whether what
you're doing is work or play

Current Thread