xsl-list
[Top] [All Lists]

RE: [xsl] Accessing context from xsl:function body

2007-11-08 02:48:02

Why does XSLT 2.0 language prohibits xsl:function to access 
the context information?

It makes static analysis and optimization a lot easier if all the parameters
to a function are explicit. Otherwise you find yourself passing information
to a function just in case it needs it. 

Consider last(), which is probably the most extreme case. When using
apply-templates, you don't know statically what templates are going to be
called and you don't know whether they will call last() or not. So the
caller has to do a lot of just-in-case preparation, which will usually be
wasted.

On the contrary, the named template can access the context 
information. Why is this difference in capability on named 
template, and xsl:function?

History. One was designed with the benefit of hindsight.

Is there any use case, where xsl:function body would really 
need the context information? Is there a merit in the 
argument, to provide this capability to xsl:function?

If the function needs the information, it can define it as an explicit
parameter.

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>
--~--