Grails でいくつかの変換を試み、参照の問題について疑問に思っています。「/WEB-INF/xslt/{file}.xsl」の下にテンプレートをホストしましたが、ファイルに他のファイルへのインポート参照があることに気付きました。
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
<xsl:import href="file2.xsl"/>
<xsl:import href="../xslt/file2.xsl"/>
そのような参照が正しい参照ではないことは承知しており、変換が必要な場合に、インポートするメインの xsl ファイルから xsl リソースをどのように参照すればよいか疑問に思いました。
私は次のコードを通してそれらを処理しています:
def String resources = grailsApplication.mainContext.getResource('/WEB-INF/xslt/'+xslTemplateName).file
def String xslt = new File(resources).text
def factory = TransformerFactory.newInstance()
def transformer = factory.newTransformer(new StreamSource(new StringReader(xslt)))