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

RE: XSL: For-Each Efficient or Not?

Subject: RE: XSL: For-Each Efficient or Not?
From: Johannes Döbler <jd@xxxxxxxxxxxxxx>
Date: Mon, 01 Jul 2002 18:59:47 +0200
xsl for each optimization
taking "child::*[position()=1 and name()='factorof']" as example:

A straightforward implementation will evaluate the child axis expression to a node-set and then apply the predicate to each node in the set.
A clever implementation would use the predicate to terminate the child axis evaluation after the first inspected node (because of position() = 1).
Not only the evaluation sequence changes but also the character of the expressions (a filter expression is turned into a loop termination criterion)


The serious implementation problem is to recognize optimization possibilities _and_ how to implement the optimization in a general way without destroying the clean implementation of the straightforward processing model.

Possible solution: Internally recognize special expressions during parse time and transform it to another expression which is processed by the straightforward processing model:

"child::*[position()=1 and name()='factorof']"
will be transformed to
"firstchild::*[name()='factorof']"
which could easily be reduced to
"firstchild::factorof'"

with the use of a processor internal pseudo-axis "firstchild".

Johannes



Wendell wrote:
>m:apply[factorof[not(preceding-sibling::*)]]

>will be better than

>m:apply[child::*[position()=1 and name()='factorof']]

at first I didn't get your point on this one. I supposed on further
consideration that it was right, although it seems like it would be
mainly dependent on the order in which xpath is evaluated by the
processor, I mean that a reasonably clever processor would evaluate
[position()=1 and name()='factorof'] first and then from there look for
any child::* which matched this, with the result that it would only
check the first child to see if it had a name of factorof?
Am I very wrong in this supposition?



XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list


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.