Re: [xsl] [XSLT2] setting context inside funcdefs

Subject: Re: [xsl] [XSLT2] setting context inside funcdefs
From: Francis Norton <francis@xxxxxxxxxxx>
Date: Sat, 15 Feb 2003 10:12:27 +0000
Hi Michael,

Michael Kay wrote:

You should pass all the information the function needs (unless it's
available as a global variable) in the arguments to the function call.

We banned passing the context implicitly because it prevents many
optimizations. For example, if you're doing lazy evaluation, then you
typically have to save all aspects of the context that an expression
depends on. Saving the context "just in case" the function uses it is
very expensive. It also means you can't move function calls out of loops
and predicates such as //a[f() = 2].

That's a persuasive agument but the idea of having to create an explicit context parameter for every function that needs context is still pretty ugly. Was any thought given to an alternative such as giving xsl:function a third attribute, copyContext="<boolean>", with a default of "false"? And would it be a technically satisfactory solution?


XSL-List info and archive:

Current Thread