RE: [xsl] XSLT Processor caching and keys

Subject: RE: [xsl] XSLT Processor caching and keys
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 13 Feb 2006 08:35:31 -0000
> My question is this though. If it is found that using 'keys' 
> is a helpful 
> optimisation, if I keep a copy of the XSLT processor in a cache (the 
> messages are requests to a web service), does this include 
> any internal 
> structure/indexes created for said keys (I don't know how these work 
> internally so I could be completely wrong ?).

This is entirely processor-dependent.

Saxon tries to keep a copy of the hash table that supports the key provided
you use both (a) the same compiled stylesheet (JAXP Templates object) and
(b) the same source document (Saxon NodeInfo object) - in this case, the
lookup document. To achieve this, make sure the lookup document is prebuilt
by the application and supplied as a parameter, rather than building it from
within the stylesheet using document().

You might find that it's easier to get index reuse by using the id()
function rather than key() - but again this is processor-dependent.

Michael Kay

Current Thread