Skip to main content

Howto use cached templates in URIResolver

No replies
fmunafo
Offline
Joined: 2008-10-13

Suppose to have those three xslt files:

- xsl1.xslt, which includes xsl3.xslt
- xsl2.xslt, which includes xsl3.xslt
- xsl3.xslt

In my source code I use javax.transform.Templates (xalan impl, but it doesn't
matter) for caching purpose, for example an HashMap(xslname, Templates).

I also have a class, MyUriResolver, that implements the method resolve from the
interface uriResolver.

The method resolve() returns a Source.

But what if I want to have xsl3.xslt cached as a Templates and get it from my
cache when the processor calls resolve, if resolve return a Source and not a
Templates?

In other words:

First, transforming xsl1.xslt involve a call to MyUriResolver.resolve that get
and return xsl3.xslt as a Source.
Second, transforming xsl2.xslt involve a call to MyUriResolver.resolve that
again get and return xsl3.xslt as a source.

Instead I want to get xsl3.xslt as a Templates from my cache and return it, even
if I'm inside MyUriResolver.resolve.

Filippo