java 中的 XSL 缓存 - 依赖的 xsl 文件

XSL caching in java - dependent xsl files

我正在使用以下代码来缓存 xsl(所有请求都相同),这样就不会每次都从磁盘读取文件。

我的问题是,如果 xsl 引用 100 个其他 xsl 文件 (<xsl:include href="file1"/>),它们也会被加载到缓存中吗?它们仍会从磁盘中读取吗?

如果没有,我们如何让所有依赖的 xsls 都被读入内存并缓存?

private static Templates cachedXslt = null;
// Transformer
        if(cachedXslt == null)
        {
            Source xsltSrc = new StreamSource(xslPath);

            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            cachedXslt = transformerFactory.newTemplates(xsltSrc);
        }

    Transformer transformer = cachedXslt.newTransformer();

是的,Templates 对象将包含某种 internal/compiled 整个样式表(即样式表的所有模块)的内存表示形式。尽管具体发生什么当然取决于实现(JAXP 是一个接口,JAXP 实现可以用不同的方式实现它。)