2016-11-16 10 views
1

次のコードを使用してxsl(すべての要求で同じ)をキャッシュし、ファイルが毎回ディスクから読み取られないようにします。Java依存のxslファイルでのXSLキャッシュ

私の質問は、xslが100個の他のxslファイル(<xsl:include href="file1"/>)を参照している場合でも、それらもキャッシュにロードされますか?それらはまだディスクから読み込まれますか?

もしそうでなければ、依存するすべてのxlsファイルをメモリに読み込んでキャッシュするにはどうすればよいですか?

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(); 

答えて

1

はい、Templatesオブジェクトには、スタイルシート全体(つまり、スタイルシートのすべてのモジュール)の内部/コンパイル済みメモリ内表現が含まれます。実際には何が起こるのかはもちろんですが(JAXPはインターフェイスであり、JAXP実装はさまざまな方法で実装できます)