как использовать калитку XsltTransformerBehavior, когда у меня несколько файлов .xsl

Я работаю над частью проекта, который должен отображать файл .xml с файлами .xsl. Вот часть кода:

FILE_PATH = "myxsl.xsl"
...
Label content = new Label("content",xmlContent);
content.setEscapeModelStrings(false);
content.add(new XsltTransformerBehavior(FILE_PATH));    
add(content);
...

В настоящее время страница работает, если я использую только один файл .xsl. Однако, поскольку файлы .xsl, с которыми мне нужно иметь дело, могут быть очень длинными, они разделены на несколько компонентов. например, у меня будут mymain.xsl, head.xsl, tables.xsl, в mymain.xsl есть другие, подобные этому

<xsl:include href="head.xsl"/>
<xsl:include href="tables.xsl"/>

Я попытался установить для FILE_PATH значение mymain.xsl, но это не сработало. Программа может найти mymain.xsl, но не может скомпилировать таблицу стилей, потому что не может найти head.xsl и tables.xsl.

Долго искал, но до сих пор не понимаю, как это сделать. Очень ценю любую помощь. Заранее спасибо.


person LT_Chen    schedule 14.06.2012    source источник


Ответы (1)


Я просмотрел документацию XsltTransformerBehavior, и похоже, что он не раскрывает функциональность для установки настраиваемого преобразователя URI (что в основном то, что вы хотите сделать).

Однако в случае, если ни у кого нет лучшего решения, я могу предложить обходной путь: напишите XSLT, который объединяет ваши файлы XSLT в один файл. См. здесь XSLT, который делает это. Если вы используете Maven в качестве системы сборки, вы можете сделать это автоматически на этапе создания ресурсов, используя цель преобразования Maven Плагин XML. Затем вы можете связать XsltTransformerBehavior с однофайловым XSLT, который будет доступен во время выполнения.

person flyx    schedule 14.06.2012