Некоторые из моих таблиц стилей немного велики, а некоторые их части повторяются. Я хотел бы использовать для них XInclude, что позволило бы мне отделить их от всей таблицы стилей. Я не могу использовать здесь xsl:import
или xsl:include
, потому что мне нужно вставить их в определенное место для генерации закладок и активных ссылок (для XSL-FO).
Если я использую:
<xi:include href="/db/apps/tested-bunny/resources/xsl-fo/common/bookmark-tree.xml/>
… созданный файл .fo
действительно включает эту часть. Однако часть не переведена, а значит, она есть в исходнике. Таким образом, процессор XSL-FO игнорирует его, и результат в формате pdf не содержит закладок.
Что касается отделенной части — я сохранил ее как обычный XML-файл с двумя пространствами имен, объявленными в корневом элементе:
<fo:bookmark-tree xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:if test="$head-level ge '1'">
...
Если я попытаюсь включить тот же фрагмент кода в виде таблицы стилей XSL, получится то же самое — он вставлен туда должным образом, но не добавит своей функциональности всей таблице стилей, он все еще остается непереведенным.
Есть ли какая-то конкретная практика или ограничения, о которых я не знаю? Как это сделать правильно?