2010-04-30 1 views
4

Я пытаюсь преобразовать некоторые XML-данные в HTML с XSLT для моей бакалаврской диссертации.Использование XSL-FO и HTML?

Мой профессор хочет, чтобы я рассматривал XSL-FO тоже, или, по крайней мере, чтобы написать какое-то слово об этом. Но я очень люблю это.

Так что мои вопросы:

Могу ли я комбинировать FO с HTML? Могу ли я использовать FO istead HTML и CSS? Если да, как мой браузер сделает это? Есть ли примеры/учебные пособия о том, как преобразовать xml в веб-страницы с помощью FO?

ответ

5

XSL-FO предназначен только для отображения в формате PDF (это не совсем верно, но вы можете принять его в качестве ориентира). Таким образом, вывод HTML и выход FO не связаны. Из вашего источника XML вы можете использовать XSLT для генерации XHTML или XSL-FO, но не одновременно в обоих случаях.

См. Например, DocBook. Он поставляется с несколькими таблицами стилей XSLT, готовыми к использованию, один для вывода HTML и один для PDF (через Apache Fop). Если вы удовлетворены результатом, может возникнуть другой вопрос.

8

Создание XSL-FO и XHTML от XSLT не обязательно является либо выбором, либо выбором.

XSL-FO обычно используется для создания PDF. Для этого вам потребуется XSL-FO двигателя, такие как FOP, RenderX, Antenna House, 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 stylesheet для преобразования XSL-FOвXHTML вывода. Он преобразует <block> элементов в <div>, <inline> в <span> и т. Д.

Я не использовал их раньше, но вы также можете попробовать использовать HTML2FO stylesheets конвертировать XHTML outut в XSL-FO.

Из коробки, вы можете получить удивительно похожий выход в обоих форматов при сохранении одной библиотеки XSLT, посвященный один определенный формат вывода.

Если вам случится нужно немного настроить вывод (например, различное содержание заголовка для XHTML), то вам просто нужно импортировать/расширить таблицы стилей преобразования и переопределить соответствующий шаблон (ы) для расширяющегося контента. Это упрощает обслуживание, поэтому вам не нужно беспокоиться об обновлении нескольких наборов таблиц стилей с практически той же информацией.