В вычислениях двумя основными языками таблиц стилей являются каскадные таблицы стилей (CSS) и расширяемый язык таблиц стилей (XSL). Хотя оба они называются языками таблиц стилей, у них очень разные цели и способы решения своих задач.
Каскадные таблицы стилей
CSS разработан для стилизации документа, структурированного на языке разметки , документов HTML и XML (включая XHTML и SVG ). Он был создан для этого. Код CSS не является синтаксисом XML для определения информации о стиле для различных элементов документа, который он стилизует.
Язык для структурирования документа ( язык разметки ) является предварительным ограничением для CSS. Язык разметки, такой как HTML и в меньшей степени XUL, может определять некоторые примитивные элементы для стилизации документа, например
Экранный носитель, отображаемый в виде одной страницы (возможно, с гиперссылками), имеющий фиксированную ширину по горизонтали, но практически неограниченную высоту по вертикали. Прокрутка часто является методом выбора для просмотра частей экрана. В этом отличие от «страничного носителя», который состоит из нескольких страниц, каждая из которых имеет определенные фиксированные горизонтальные и вертикальные размеры. Чтобы стилизовать мультимедийные данные с постраничным отображением, требуется множество сложностей, которые не выполняются при отображении мультимедийных данных. Поскольку CSS изначально был разработан для экранных носителей, его постраничные возможности отсутствовали.
CSS версии 3.0 предоставляет новые функции, которые позволяют CSS более адекватно стилизовать документы для постраничного отображения.
Расширяемый язык таблиц стилей
XSL радикально эволюционировал от своего первоначального дизайна до чего-то очень отличного от его первоначального предназначения. Первоначальная идея XSL заключалась в создании языка стилей на основе XML, ориентированного на страничное отображение мультимедиа. Механизм, который они использовали для выполнения этой задачи, заключался в разделении процесса на два отдельных этапа.
Во-первых, XML-документ будет преобразован в промежуточную форму. Процесс выполнения этого преобразования будет регулироваться таблицей стилей XSL, как определено в спецификации XSL. Результатом этого преобразования будет XML-документ на промежуточном языке, известном как XSL-FO (также определенном в спецификации XSL).
Однако в процессе разработки этапа преобразования стало понятно, что общий язык преобразования XML будет полезен не только для создания представления XML-документа. Таким образом, новая рабочая группа была отделена от рабочей группы XSL, и язык преобразований XSL (XSLT) стал чем-то, что считалось отдельным от информации о стилях документа XSL-FO. Даже это разделение было расширено, когда XPath стал отдельной спецификацией, хотя все еще сильно привязанной к XSLT.
Комбинация XSLT и XSL-FO создает мощный язык стилей, хотя и намного более сложный, чем CSS. XSLT - это полный язык Тьюринга , а CSS - нет; это демонстрирует степень мощности и гибкости, которых нет в CSS. Кроме того, XSLT может создавать контент, например автоматически создавать оглавление только из глав в книге, или удалять / выбирать контент, например создавать только глоссарий из книги. XSLT версии 1.0 с расширениями EXSLT или XSLT версии 2.0 также может создавать несколько документов, например разделять главы книги на отдельные страницы. Напротив, CSS может только выборочно удалять контент, не отображая его.
XSL-FO отличается от CSS тем, что документ XSL-FO стоит особняком. CSS изменяет прикрепленный к нему документ, в то время как документ XSL-FO (обычно результат преобразования исходного документа с помощью XSLT) содержит все содержимое, которое должно быть представлено в чисто презентационном формате. Он имеет широкий спектр опций спецификации в отношении постраничного форматирования и более качественного набора. Но при этом не указываются сами страницы. Документ XSL-FO должен быть передан через служебную программу процессора XSL-FO, которая генерирует окончательный постраничный носитель, подобно тому, как HTML + CSS должен пройти через веб-браузер для отображения в его отформатированном состоянии.
Сложность XSL-FO является проблемой, во многом потому, что реализация процессора FO очень сложна. Реализации CSS в веб-браузерах все еще не полностью совместимы друг с другом, и гораздо проще написать процессор CSS, чем процессор FO. Однако для мультимедийных материалов с богатой разбивкой на страницы такая сложность в конечном итоге требуется для решения различных задач набора .
Смотрите также
Внешние ссылки
- Почему W3 поддерживает 2 языка таблиц стилей? Статья W
- Совместное использование CSS и XSL статья W3
- Печать XML Почему CSS лучше XSL.
- Статья о SLT для преобразований и CSS для веб-презентации
- Блог группы разработчиков MS XML CSS против XSL