This attribute may be set on the xsl:function
element. The permitted values
are "yes" and "no". Specifying "yes" indicates that Saxon should remember the
results of calling the function in a cache, and if the function is called again
with the same arguments, the result is retrieved from the cache rather than being
recalculated. Don't use this if the function has side-effects (for example, if
it calls saxon:assign
, or an extension function with side-effects).
Don't use it if the function accesses context information such as the context node
or position()
or last()
. And be careful if the function constructs and returns a
temporary tree: the effect will be that the function returns the same tree each
time, rather than a copy of the tree (this difference will only show up if you
compare the identity of nodes in the two trees).
In Saxon 8.0, this was working on some functions but not others, depending on the way they were compiled. In 8.1, it should work on all functions.