xsl-list
[Top] [All Lists]

Re: [xsl] XPath proximity position in predicates

2006-05-15 03:40:19
Hi Michael

I have no practical use case.

I have an XPath (1.0) implementation as part of my open source XForms project and I'm doing some optimizations on it at the moment. I was looking at when I could simply skip evaluating a path expr containing a predicate. In the static analyze I got a result where the predicate didn't evaluate to a integer and therefore failed to locate a node. Since the predicate contained a static expression (e.g. just some calculations that should be folded during compilation of the expression) I was a little surprised. Now the good thing about this is that I can optimize this the other way around and say that I don't have to evaluate the path expr if a predicate contains a number which isn't an integer.

Best regards,
David

Michael Kay wrote:
Reading XPath 1.0 it states that a predicate evaluating to a number will return true if equal to the proximity position of the current node. I was wondering if there is a reason the evaluated number isn't rounded by the XPath engine?

My guess on this is that no-one thought about this case before the 1.0 spec
was published - remember that it didn't have anything like the extended
review period that the current specs are going through. However, I think it
rarely causes a problem in practice. Anyone computing the position using
something other than simple addition or subtraction, for example to
implement a binary-chop search, should really be thinking about the rounding
strategy to use rather than relying on any default rounding algorithm; and
simple addition and subtraction using small integer values doesn't lead to
rounding errors.

If there's a practical use case where problems arise, I'd be interested to
hear of it.

Michael Kay
http://www.saxonica.com/


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--