Re: [xsl] Nicer way to change context-node than xsl:for-each ?

Subject: Re: [xsl] Nicer way to change context-node than xsl:for-each ?
From: Andrew Welch <andrew.j.welch@xxxxxxxxx>
Date: Mon, 7 Dec 2009 14:55:04 +0000
2009/12/7 Dimitre Novatchev <dnovatchev@xxxxxxxxx>:
> On Mon, Dec 7, 2009 at 2:45 AM, Andrew Welch <andrew.j.welch@xxxxxxxxx>
wrote:
>>
>> Hmm, an empty <xsl:apply-templates/> is always push, regardless of
>> mode or namespaces.  If a select attribute is used, then it becomes
>> pull.
>
> Yes, the select attribute is important. Thanks for reminding this.
>
>>
>> I can't see how the number of templates involved, the modes or
>> namespaces have any affect on whether its pull or push...?   For
>> example, are you saying:
>>
>> <xsl:apply-templates mode="foo"/>
>>
>> ...is pull when only a single template exists with that mode, but push
>> otherwise?
>
> Yes, if we know (or it is guaranteed) that only one template is in the
> mode "foo", then
>
> <xsl:apply-templates mode="foo"/>
>
> is in "pull style" as we exactly know what particular template will be
> selected for processing (as there is only one such template).

Do you?  It depends on the match pattern for that template surely?
You still have the inbuilt templates...

> One could argue that even if this guarantee doesn't exist we still
> have "push style" here. For me it is not "pure push style" if you are
> not 100% sure which template will be selected for processing (and this
> is the case when more than one templates could be selected: which one
> depends on the individual nodes in the current node-list.
>
>
> When we know that only one particular template will be selected for
> processing and we know exactly which it is, then we "are in full
> control" and this is "pull style" processing.


The way I have always understood it is that it's purely about document
order driving the transform.  What happens to the node list once its
constructed and ordered doesn't matter, push vs pull is simply about
how that list is constructed and ordered.




--
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

Current Thread