[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

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

Subject: Re: 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
Re:  Nicer way to change context-node than xsl:for-each
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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.