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