Генерация XSL-FO и XHTML из XSLT не обязательно является или-или выбором.
XSL-FO обычно используется для создания PDF. Для этого вам понадобится XSL-FO двигатель , такой как FOP , RenderX , Антенный домик , IBex и т. д. Однако вы можете преобразовать XSL-FO в XHTML и затем выполнить рендеринг в браузере.
Как правило, не стоит создавать XSLT XSL-FO , а затем конвертировать в XHTML (просто генерировать XHTML напрямую), если только вы не хотите создавать оба формата вывода (PDF и XHTML) с меньшими усилиями.
Можно одновременно создавать ** XSL-FO и XHTML , не поддерживая два полных набора таблиц стилей для создания одинакового вывода в разных словарях **.
Вместо того, чтобы выбирать между одним форматом или другим или поддерживать две совершенно разные (но похожие) библиотеки таблиц стилей, вы можете создать свою основную библиотеку таблиц стилей для генерации XSL-FO или XHTML , а затем используйте второе преобразование для преобразования из XSL-FO в XHTML и наоборот. Существуют таблицы стилей XSLT, которые вы можете использовать для этого.
В прошлом я разрабатывал таблицы стилей XSL-FO , а затем использовал таблицу стилей Render-X FO2HTML для преобразования XSL-FO * От 1058 * до XHTML . Он преобразует <block>
элементов в <div>
, <inline>
в <span>
и т. Д.
Я не использовал их раньше, но вы также можете попробовать использовать таблицы стилей HTML2FO для преобразования XHTML outut в XSL-FO .
Из коробки вы можете получить удивительно похожий вывод в обоих форматах, сохраняя одну библиотеку XSLT, выделенную для один определенного формата вывода.
Если вам нужно немного настроить вывод (например, другое содержимое заголовка для XHTML ), тогда вам просто нужно импортировать / расширять таблицы стилей преобразования и переопределять соответствующий шаблон (ы) для расходящегося содержимого , Это значительно упрощает обслуживание, поэтому вам не нужно беспокоиться об обновлении нескольких наборов таблиц стилей по существу одной и той же информацией.