[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] "Higher Order Functions for XQuery" -- static context and focus


Subject: Re: [xsl] "Higher Order Functions for XQuery" -- static context and focus
From: John Snelson <john.snelson@xxxxxxxxxx>
Date: Fri, 04 Sep 2009 13:27:54 +0100

Florent Georges wrote:
Hi,

  I guess this is a good place to discuss John's proposal for
"Higher Order Functions for XQuery."  Sorry if it is not.

  In the section "1.2 Inline Functions", the fifth paragraph is
<http://snelson.org.uk/~jpcs/higher-order-functions.html#inline-func>:

    The static context for the function body is inherited from
    the location of the inline function expression, with the
    exception of the static type of the focus (context item,
    context position, and context size) which is undefined.

  I am not sure to understand what does "the static type of the
focus" mean.  The focus is a component of the dynamic context,
and I am not sure "type" is used here as in the rest of the RECs.

I think this should probably read "static type of the context item".


  BTW, is this restriction really relevant?  A user can anyway
reference those values by using intermediary variables:

    let $i := position()
      return
        function() { $i }

and the processor would be able to detect whether the function
body does use any component of the focus, to see if it has to
save those as well or not.

I guess I missed the point behind this choice. Any idea?

It's for consistency with the rest of XQuery / XSLT 2.0, where the focus (context item, position, and size) are initially undefined in a user defined function. Arguments as to whether that's a good restriction are a different can of worms altogether :-).


John

--
John Snelson, Oracle Corporation            http://snelson.org.uk/john
Berkeley DB XML:            http://oracle.com/database/berkeley-db/xml
XQilla:                                  http://xqilla.sourceforge.net


Current Thread
Keywords