Saxon extensions to the W3C XSLT/XQuery specifications
Two new extension functions saxon:index and saxon:find are
available. These are particularly useful in XQuery, where they provide an equivalent to the
capability offered by xsl:key in XSLT. The functions can also be useful in XSLT, because
unlike xsl:key they allow any sequence to be indexed, even one that spans multiple
documents. The typical usage is first to create an indexed sequence, for example by:
declare variable $indexedTowns := saxon:index(//town, saxon:expression("@state"));
and then to retrieve towns whose state is known by using saxon:find():
{ saxon:find($indexedTowns, "MA") }
This example finds all <town> elements whose state attribute
has the value MA.
These extension functions are available only in Saxon-SA.
If the argument to the function saxon:expression is a compile-time constant
(typically a string literal), then
the XPath expression is compiled at stylesheet compile time and any errors are reported as static errors.