Что такое XSL?


Расширяемый язык стиля (Extensible Style Language, XSL) представляет собой механизм таблицы стилей, специально приспособленный для работы с XML. XSL обеспечивает преобразование XML-документов в форматы HTML, RTF, а также в другие XML-словари. Можно также указывать XML-процессору или браузеру, каким образом должны отображаться XML-документы. XSL является основным языком форматирования, предназначенным для XML, легким в изучении и применении.

Каскадные таблицы стилей (Cascading Style Sheets, CSS) и язык описания и семантики стиля документов (Document Style Semantics and Specification Language, DSSSL) применяются для создания таблиц стилей для XML-документов, и хотя мощь и характеристики обоих достаточны для работы с XML, основным моментом является то, что они были созданы, соответственно, для работы с двумя языками разметки — с HTML и SGML. С другой стороны, XSL специально предназначен для работы с XML и словарями на его основе. Таблицы стилей XSL фактически являются XML-документами, и их легче создавать, чем таблицы стилей DSSSL, тем не менее, они более надежны и функциональны, чем таблицы стилей CSS. Во многих отношениях XSL представляет собой "золотую середину" между CSS и DSSSL.

В этой главе показано, как XSL соотносится с CSS и DSSSL. Ее материал также подготавливает вас к составлению таблиц стилей XSL любого уровня. Современное состояние разработки стандарта XSL отражено на сайте http://www.w3.org/Style/XSL/.

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

При помощи механизмов стилей других типов для одного XML-документа может быть создано несколько таблиц стилей, обеспечивающих несколько окончательных сценариев отображения информации. Например, документ, демонстрируемый на конференции, необходимо отобразить для пользователя в Web-браузере и распечатать в качестве раздаточного материала. Для каждого метода распространения данных может быть создано три отдельных таблицы стилей. Теперь представьте, что в компании имеются сотни документов, которые должны быть представлены в соответствующем стиле для всех трех сценариев. Три отдельных таблицы стилей могут управлять всеми документами, обеспечивая их внешний вид. В материалах консорциума W3C, содержащихся на сайте http://www.w3.org/TR/NOTE-XSL.html, указаны следующие принципы разработки XSL:

Основная функция XSL на данной стадии заключается в преобразовании XML-документов в форматы, которые допускается использовать в других системax документов, например, в HTML и RTF. В будущем XSL будет также указывать XML-процессорам и браузерам, как должны отображаться документы, с которыми они работают.

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

Статус спецификации XSL

Единственный большой недостаток XSL заключается в том, что он находится еще на ранней стадии своего развития. В настоящее время XSL представлен рабочими материалами, разработанными для консорциума W3C группой авторов из Microsoft, Inso, ArbortText и Эдинбургского университета. Чтобы получить текущую версию рабочих материалов, посетите www.w3.org/TR/XSL/.

Примечание

Приведем основные вехи истории XSL:

Несколько месяцев в жизни Web могут показаться вечностью. За это время сам XML сильно изменится. Хотя основные конструкции XSL и далее останутся теми же, следует ожидать важных дополнений к данной спецификации.

Что это означает для XML-разработчика? Следует быть осмотрительными при разработке расширяемых таблиц стилей XSL. Не следует слишком привязываться к таблице стилей, которую вы не сможете модифицировать по мере развития XSL. Если вам крайне необходим единый механизм стилей, который не надо будет менять каждые несколько месяцев, и который в то же время будет работать с большой коллекцией XML-документов, применяйте DSSSL, пока XSL не станет более стабильным.

Если, однако, вы — новичок в XML и рассматриваете его как альтернативную Web-технологию или как способ описания новых наборов документов то XSL, вероятно, будет лучшей ставкой в создании таблиц стилей XML Несмотря на свою относительную молодость, XSL получил активную поддержку в продукции производителей программного обеспечения, и, по всей видимости, в браузерах для XSL будет предусмотрена еще большая встроенная поддержка, чем для DSSSL. К тому же, XSL обеспечивает интеграцию CSS, таким образом, с его помощью можно конвертировать документы из XML в HTML для их публикации в Web и для связи документов с таблицами стилей CSS. Можно также при помощи XSL встраивать стилевые правила CSS непосредственно в HTML-документы.

Изучение XSL становится перспективным для эффективного распространения XML-документов в Web. В конечном счете вам, так или иначе, необходимо его знать, так что будет лучше, если вы начнете его изучать сейчас. Следите за информацией на Web-странице консорциума W3C, посвященной XSL (http://www.w3.org/Style/XSL/).

Основные термины XSL

Любое обсуждение XSL предполагает знание некоторых ключевых терминов:

XSL позаимствовал концепцию правил построения и объектов потока из DSSSL.

Разрешение конфликтов: разбор правила

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

<< назад | содержание

Hosted by uCoz