[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] Find the node with maximum elements
Subject: RE: [xsl] Find the node with maximum elements From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Sun, 4 Nov 2007 14:52:13 -0000 |
> 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/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Find the node with maximu, G. Ken Holman | Thread | RE: [xsl] Find the node with maximu, Scott Trenda |
Re: [xsl] Find the node with maximu, G. Ken Holman | Date | Re: [xsl] More addition questions: , Dimitre Novatchev |
Month |