xsl-list
[Top] [All Lists]

RE: [XSLT2] setting context inside funcdefs

2003-02-15 01:05:00
Hi

Inside function definitions, is there a way to set the 
context to that 
of the function call, so that I can write "local-name()" etc?

Or should I pass in the context node as argument, in addition 
to all the 
local params visible to the function call.
Then I probably  would write s.th. like 
"local-name($callers_context-node)"; which is more typing ...


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].

Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com 


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