Robert Koberg wrote:
Hi,
How do xsl processors handle xsl:import with regard to (don't really
know how to say this) storing xsl:templates in a
javax.xml.transform.Templates object?
For sake of example, say I want to xsl:import files that contain 100
xsl:templates. The *importing* file overrides all 100 xsl:templates with
new ones. [I want to cache the javax.xml.transform.Templates object in
memory for a webapp]. Will the Templates object contain 200
xsl:templates or does it discard the overriden ones?
Take a look at the setURIResolver[1] method on the TransformerFactory
class.
These method is called by the XSLT processor when an xsl:import
function in your XSLT is found.
Then, If you write your own URIResolver [2], you can load your xsl file in
cache and give it to the XSLT Processor...
TransformerFactory factory = TransformerFactory.newInstance();
factory.setURIResolver(new MyResolver(...));
class MyResolver implements URIResolver {
public Source resolve(String href,String base) {
// manage your cache and return a Source to the Processor
}
}
[1]
http://java.sun.com/j2se/1.4.2/docs/api/javax/xml/transform/TransformerFactory.h
tml#setURIResolver(javax.xml.transform.URIResolver)
[2] http://java.sun.com/j2se/1.4.2/docs/api/javax/xml/transform/URIResolver.html
HTH
Fred
--
XPath free testing software : http://lantern.sourceforge.net
Frédéric Laurent http://www.opikanoba.org
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list