Старая версия xmlhack.ru


XSL[T|-FO]

[XSL[T|-FO]]

Язык стилевых таблиц XSL (Extensible Stylesheet Language) состоит из:

XSL Transformations (XSLT)
языка преобразования XML-документов,
XML Path Language (XPath)
языка построения ссылок на части XML-документов,
XSL Formatting Objects (XSL-FO)
набора правил для описания внешнего вида XML-документа на экране, принтере или другом устройстве.

Для работы с XSL лучше всего использовать среду Java — в ней доступно много готовых решений. Они доступны и для других языков и платформ. Например, объект MSXML идеально подходит для windows-приложений. А современные версии браузеров Internet Explorer и Mozilla имеют встроенную поддержку XSL.

XSL-FO обычно используется при преобразовании XML в формат, пригодный для печати, обычно PDF. При этом возникают проблемы с выводом русских букв. Пути решения описаны на сайте Russian FOP и в XML FAQ нашего сервера.

XSLT обычно используется для преобразования XML в HTML, есть ряд стандартных приёмов типа «вывести данные в таблице из k столбцов». На языке XSLT можно писать достаточно сложные программы, но не стоит применять его для задач более сложных чем «вырезать части документа, переименовать некоторые элементы и добавить какие-нибудь теги».

Интересное применение XSLT и XPath — schematron. С помощью достаточно простого языка описывается, каким ограничениям должны удовлетворять XML-документы (например, тег aaa не может содержать тег bbb если у последнего есть атрибут xx). Затем выбирается какой-нибудь из схематронов и объединяется с правилами целостности. В итоге получается XSLT-программа для проверки XML и создания отчёта.

В сети есть книга про XML-FO: An introduction to XSL Formatting Objects. Лучшая книга по XSLT на русском: «Технология XSLT» Алексея Валикова. Она частично опубликована на нашем сервере.

Домашняя страница XSL и XSLT располагается по адресу http://www.w3.org/Style/XSL/. Технологии XSLT посвящён сайт www.xslt.com. Наиболее полный каталог XSL-ресурсов размещён в разделе XSL сервера The XML Cover Pages.