XSL (Extensible Stylesheet Language) — стандарт, рекомендованный в 2001 году консорциумом W3C), идеально подходит для документов, которые должны выводиться в различных форматах и на разных видах устройств

Годом рождения языков разметки можно условно считать 1969 год, когда три специалиста корпорации IBM разработали Generalized Markup Language. По сути, он и стал прародителем как HTML, благодаря которому функционирует Web, так и XML — нынешнего основного средства определения, хранения и форматирования данных самых различных видов, включая документы, формы и базы данных.

Эти языки базируются на системе, названной тэгированием (tagging), в которой текст и данные маркируются тэгами — указателями, заключенными в угловые скобки. Размеченный фрагмент открывается соответствующим тэгом () и завершается аналогичной конструкцией, причем в последнем тэге ставится косая черта ().

В страницах HTML используются стандартные предопределенные тэги. Например,

обозначает абзац,

— заголовок, а текст, размещенный между и , будет выведен жирным шрифтом. Web-браузеры интерпретируют эти тэги и при отображении страниц на экране форматируют текст соответствующим образом.

XML дает программистам возможность определять собственные тэги. При этом браузеры не обладают встроенными механизмами, позволяющими им «понимать», что означает тот или иной тэг и что следует с ним делать. Ситуация усложняется тем, что использовать тэги можно для описания самих данных (информационного наполнения) или для указания способов форматирования (как отображать текст или расположить элемент).

Например,

может указывать на размещение на странице HTML элементов в виде матрицы или выражать фрагмент оформления. Эта гибкость дает XML широкие возможности, сложность же заключается в том, чтобы различить элементы, относящиеся к информационному наполнению и форматированию.

Для эффективного отображения документов XML необходимы механизмы, которые указывают и описывают значение тэгов форматирования, а также устанавливают зависимость от них других частей документа. Раньше такими механизмами были DSSSL (Document Style Semantics and Specification Language) и CSS (Cascading Style Sheets). Впоследствии им на смену пришел XSL (Extensible Stylesheet Language) — стандарт, рекомендованный в 2001 году консорциумом W3C.

XSL предоставляет развернутую модель и обширный словарь для создания таблиц стилей с помощью синтаксиса XML. Его можно использовать для определения способа преобразования файла XML в формат, который распознается и воспринимается браузером (например, HTML).

XSL позволяет добавлять элементы в выходной файл, удалять или игнорировать существующие. С помощью его средств можно реорганизовать и сортировать элементы, проверять и принимать решения о том, какие из них необходимо отображать, а также многое другое.

Компоненты XSL

По существу, XSL представляет собой семейство из трех инструментов: XPath, XSLT и XSF-FO, созданных в рамках рабочей группы XSL Working Group, действующей в составе W3C.

  • XPath, или XML Path Language, используется для указания конкретных частей документа XML, которые будут преобразованы с помощью XSL Transformations (XSLT). XPath интерпретирует документ XML как иерархическое дерево узлов, которые могут содержать элементы, атрибуты или текст. Это иерархическое дерево называется деревом узлов-источников (source-node tree).
  • XSLT описывает способ фильтрации или конвертирования (преобразования) документов XML в другие виды XML-документов, в том числе в файлы XSL Formatting Object (XSL-FO). Таблицы стилей XSLT состоят из набора шаблонных правил для преобразования дерева узлов-источников путем сравнения его элементов с шаблонами. Если соответствие найдено, эти правила используются для создания нового узла в результирующем дереве. Структура результирующего дерева может кардинально отличаться от структуры дерева узлов-источников, поскольку элементы могут фильтроваться и переупорядочиваться и к дереву может добавляться произвольная структура. Таблица стилей XSLT напоминает сложную программу поиска и замены.
  • XSL-FO — это инструкции, точно определяющие, как будет отформатирован документ для конкретной среды или устройства. В документах, предназначенных для печати, объекты форматирования могут содержать символы, блоки текста, изображения, таблицы, бордюры, шаблонные страницы и т. п.

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

Зачем нужен XSL

XSL предназначен для повторяющихся ситуаций, когда документы динамически генерируются и форматируются по требованию, но не в тех случаях, когда структуру, информационное наполнение и оформление документов должны создавать дизайнеры, для того чтобы получить приемлемый статический результат. Таким образом, XSL идеально подходит для документов, которые должны выводиться в различных форматах и на разных видах устройств, начиная от принтеров и заканчивая экранами карманных компьютеров и телефонов.