Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
В вычислительной технике двумя основными языками стилей являются каскадные таблицы стилей (CSS) и язык расширяемых таблиц стилей (XSL). Несмотря на то, что оба они называются языками стилей, их назначение и принципы работы существенно различаются.
In computing, the two primary stylesheet languages are Cascading Style Sheets (CSS) and the Extensible Stylesheet Language (XSL). While they are both called stylesheet languages, they have very different purposes and ways of going about their tasks.
Каскадные таблицы стилей
CSS разработан для стилизации документов, структурированных с помощью языков разметки, таких как HTML и XML (включая XHTML и SVG). Он был создан именно для этого. Код CSS использует не-XML синтаксис для определения информации о стиле различных элементов документа, который он стилизует. Язык, используемый для структурирования документа (язык разметки), является основой для CSS. Языки разметки, такие как HTML и, в меньшей степени, XUL, могут определять некоторые базовые элементы для стилизации документа, например, тег `<emphasis>` для выделения жирным шрифтом. CSS применяет стили к документу для отображения на "экранных носителях" или "страничных носителях". Экранные носители отображаются как одна страница (возможно, с гиперссылками), имеющая фиксированную горизонтальную ширину и практически неограниченную вертикальную высоту. Прокрутка часто используется для просмотра частей экранного носителя. Это отличается от "страничных носителей", которые состоят из нескольких страниц, каждая из которых имеет определенные фиксированные горизонтальные и вертикальные размеры. Стилизация для страничных носителей включает в себя ряд сложностей, которых нет при работе с экранными носителями. Поскольку CSS изначально разрабатывался для экранных носителей, его возможности для работы со страничными носителями были ограничены. CSS версии 3.0 предоставляет новые функции, позволяющие более эффективно стилизовать документы для отображения на страницах.
CSS is designed around styling a document, structured in a markup language, HTML and XML (including XHTML and SVG) documents. It was created for that purpose. The code CSS is non XML syntax to define the style information for the various elements of the document that it styles. The language to structure a document (markup language) is a prelimit to CSS. A markup language, like HTML and less XUL, may define some primitive elements to style a document, for example <emphasis> to bold. CSS post styles a document to "screen media" or "paged media". Screen media, displayed as a single page (possibly with hyperlinks), that has a fixed horizontal width but a virtually unlimited vertical height. Scrolling is often the method of choice for viewing parts of screen media. This is in contrast to "paged media", which has multiple pages, each with specific fixed horizontal and vertical dimensions. To style paged media involves a variety of complexities that screen media does not. Since CSS was designed originally for screen media, its paged facilities lacked. CSS version 3.0 provides new features that allow CSS to more adequately style documents for paged display.
Язык расширяемой таблицы стилей
XSL радикально изменился от своего первоначального замысла, превратившись во что-то совершенно отличное от его изначальной цели. Первоначальная идея XSL заключалась в создании языка стилей на основе XML, предназначенного для страничных носителей отображения. Механизм, использованный для решения этой задачи, заключался в разделении процесса на два отдельных этапа. Сначала XML-документ преобразуется в промежуточную форму. Процесс выполнения этого преобразования регулируется XSL-стилем, как определено в спецификации XSL. Результатом этого преобразования является XML-документ на промежуточном языке, известном как XSL FO (также определенном спецификацией XSL). Однако в процессе разработки этапа преобразования стало ясно, что универсальный язык преобразования XML будет полезен не только для создания представления XML-документа. В связи с этим от рабочей группы XSL была выделена новая рабочая группа, и язык XSL Transformations (XSLT) стал рассматриваться как отдельный от информации о стилях документа XSL FO. Этот раскол расширился еще больше, когда XPath стал самостоятельной спецификацией, хотя и тесно связанной с XSLT. Сочетание XSLT и XSL FO создает мощный язык стилей, хотя и гораздо более сложный, чем CSS. XSLT является языком, полным по Тьюрингу, в то время как CSS – нет; это демонстрирует степень мощности и гибкости, недоступную в CSS. Кроме того, XSLT способен создавать контент, например, автоматически генерировать оглавление только на основе глав книги, или удалять/выбирать контент, например, создавать только глоссарий из книги. XSLT версии 1.0 с расширениями EXSLT или версии 2.0 также может генерировать несколько документов, например, разделять главы книги на отдельные страницы. В отличие от этого, CSS может только выборочно скрывать контент, не отображая его. XSL FO отличается от CSS тем, что документ XSL FO является самостоятельным. CSS изменяет документ, к которому он прикреплен, в то время как документ XSL FO (обычно результат преобразования XSLT исходного документа) содержит весь контент, который должен быть представлен в чисто презентационном формате. Он имеет широкий спектр опций спецификации в отношении постраничного форматирования и высококачественной верстки. Однако он не определяет сами страницы. Документ XSL FO должен быть обработан утилитой процессора XSL FO, которая генерирует окончательный страничный вывод, подобно тому, как HTML+CSS должен быть обработан веб-браузером для отображения в отформатированном виде. Сложность XSL FO является проблемой, главным образом потому, что реализация FO-процессора очень сложна. Реализации CSS в веб-браузерах все еще не полностью совместимы друг с другом, и написать CSS-процессор намного проще, чем FO-процессор. Однако для насыщенных страничных носителей такая сложность в конечном итоге необходима для решения различных задач верстки.
XSL has evolved drastically from its initial design into something very different from its original purpose. The original idea for XSL was to create an XML based styling language directed toward paged display media. The mechanism they used to accomplish this task was to divide the process into two distinct steps. First, the XML document would be transformed into an intermediate form. The process for performing this transformation would be governed by the XSL stylesheet, as defined by the XSL specification. The result of this transformation would be an XML document in an intermediate language, known as XSL FO (also defined by the XSL specification). However, in the process of designing the transformation step, it was realized that a generic XML transformation language would be useful for more than merely creating a presentation of an XML document. As such, a new working group was split off from the XSL working group, and the XSL Transformations (XSLT) language became something that was considered separate from the styling information of the XSL FO document. Even that split was expanded when XPath became its own separate specification, though still strongly tied to XSLT. The combination of XSLT and XSL FO creates a powerful styling language, though much more complex than CSS. XSLT is a Turing complete language, while CSS is not; this demonstrates a degree of power and flexibility not found in CSS. Additionally, XSLT is capable of creating content, such as automatically creating a table of contents just from chapters in a book, or removing/selecting content, such as only generating a glossary from a book. XSLT version 1.0 with the EXSLT extensions, or XSLT version 2.0 is capable of generating multiple documents as well, such as dividing the chapters in a book into their own individual pages. By contrast, a CSS can only selectively remove content by not displaying it. XSL FO is unlike CSS in that the XSL FO document stands alone. CSS modifies a document that is attached to it, while the XSL FO document (usually the result of the transformation by XSLT of the original document) contains all of the content to be presented in a purely presentational format. It has a wide range of specification options with regard to paged formatting and higher quality typesetting. But it does not specify the pages themselves. The XSL FO document must be passed through an XSL FO processor utility that generates the final paged media, much like HTML+CSS must pass through a web browser to be displayed in its formatted state. The complexity of XSL FO is a problem, largely because implementing an FO processor is very difficult. CSS implementations in web browsers are still not entirely compatible with one another, and it is much simpler to write a CSS processor than an FO processor. However, for richly specified paged media, such complexity is ultimately required in order to be able to solve various typesetting problems.