RE: [xsl] Re: . in for

Subject: RE: [xsl] Re: . in for
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Sun, 6 Jan 2002 19:50:43 -0000
> Yes, you're right of course - the focus at the point at which the
> user-defined function is called provides the focus for the body of the
> function when it's defined by xsl:function, and that will propagate
> through function (and named template) calls from those functions and
> so on, making it impractical for the processor to spot.

There's a debate going on about whether context should be provided as an
implicit parameter to user-defined functions or not. Optimisation is
certainly a lot easier if context is *not* retained through the function
call: in other words, if the function needs to know position(), it has to be
supplied as an explicit argument. In that case it certainly is possible to
detect whether an expression uses position() or last().

(This applies equally to XPath 1.0. Saxon currently assumes the worst case:
if an expression calls an extension function, then it's assumed to need
position() and last().)

Mike Kay


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


Current Thread