|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Find the node with maximum elements
> And I'm assuming that since the expression > "max(/Sample/*/count(Car))" is based on an absolute XPath > address, there is an opportunity for processor optimization > because the value will never change for the entire execution > of the stylesheet. That's actually not a sufficient condition. The term "absolute path expression" is very misleading from this point of view. Given an expression $exp[count(Car) = max(/Sample/*/count(Car))] you can move the max() call out of the loop only if you know that $exp is a single-document nodeset - that is, all nodes in $exp will come from the same document. This is the strategy Saxon uses, and it works in this case because static analysis shows that /Sample/* is indeed a single-document nodeset. Another optmization strategy would be, at run-time, to evaluate max(/Sample/*/count(Car)) once for each document represented in $exp, so if $exp returned a set of 100 nodes taken from three documents, the max() function would be evaluated thrice. This isn't a strategy Saxon uses... The big difficulty when coding in XSLT or other declarative languages is of course that you don't know which "opportunities for optimization" the processor is going to take advantage of. Michael Kay http://www.saxonica.com/
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Cast Your Vote
We need your help – Vote for DataDirect XML Products!
Winners and finalists announced at SOA World Conference in November. Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|







