Введение
Язык XML-стилей
В вычислительной технике термин "Extensible Stylesheet Language" (XSL) используется для обозначения семейства языков, применяемых для преобразования и отображения XML-документов. Исторически, рабочая группа W3C XSL разработала проект спецификации под названием "XSL", который впоследствии разделился на три части:
languages used to transform and render XML documents. Historically, the W3C XSL Working Group produced a draft specification under the name "XSL", which eventually split into three parts:
XSL Transformation (XSLT): язык XML для преобразования XML-документов.
XSL Formatting Objects (XSL FO): язык XML для определения визуального форматирования XML-документа.
XML Path Language (XPath): язык, не основанный на XML, используемый XSLT, а также доступный для применения в контекстах, отличных от XSLT, для адресации частей XML-документа. В результате, термин "XSL" сейчас используется в различных значениях:
XSL Formatting Objects (XSL FO): an XML language for specifying the visual formatting of an XML document
XML Path Language (XPath): a non XML language used by XSLT, and also available for use in non XSLT contexts, for addressing the parts of an XML document. As a result, the term "XSL" is now used with a number of different meanings:
Иногда он относится к XSLT: этого следует избегать. Однако "xsl" используется как общепринятый префикс пространства имен для пространства имен XSLT, а также как общепринятый суффикс имени файла для файлов, содержащих модули таблиц стилей XSLT.
Иногда он относится к XSL FO: такое использование можно оправдать тем, что спецификация XSL FO имеет название Extensible Stylesheet Language (XSL); однако термин XSL FO реже приводит к недопониманию.
Иногда он относится к обоим языкам, рассматриваемым совместно, или к рабочей группе, разработавшей оба языка.
Иногда, особенно в среде Microsoft, он относится к устаревшей версии XSLT, разработанной и распространяемой Microsoft в составе MSXML до завершения спецификации W3C.
Sometimes it refers to XSL FO: this usage can be justified by the fact that the XSL FO specification carries the title Extensible Stylesheet Language (XSL); however, the term XSL FO is less likely to be misunderstood
Sometimes it refers to both languages considered together, or to the working group that developed both languages
Sometimes, especially in the Microsoft world, it refers to a now obsolete variant of XSLT developed and shipped by Microsoft as part of MSXML before the W3C specification was finalized
История
XSL возник как попытка перенести функциональность DSSSL, особенно в области печати и высококачественной верстки, на XML. В ответ на предложение, представленное компаниями Arbortext, Inso и Microsoft, рабочая группа W3C по XSL начала свою деятельность в декабре 1997 года. Сопредседателями были Шарон Адлер и Стив Зиллес, редактором – Джеймс Кларк (и неофициально главным разработчиком), а контактным лицом от W3C – Крис Лилли. 18 августа 1998 года группа опубликовала первый публичный рабочий проект. XSLT и XPath стали Рекомендациями W3C 16 ноября 1999 года, а XSL FO получил статус Рекомендации 15 октября 2001 года.
Преобразования XSL
Первоначальная версия XSLT (1.0) была опубликована в ноябре 1999 года и получила широкое распространение. Некоторые из ранних реализаций устарели, но заметные реализации, активно используемые в 2023 году, включают те, которые интегрированы в основные веб-браузеры, а также Altova RaptorXML, libxslt, Saxon, реализацию Microsoft .NET System.Xml.Xsl и Xalan, интегрированную в JVM Oracle. Все эти продукты демонстрируют высокий уровень соответствия спецификации, хотя они также предлагают проприетарные расширения и некоторые из них не поддерживают необязательные функции, такие как отключение экранирования выходных данных. Последующие версии XSLT включают XSLT 2.0 (январь 2007 года) и XSLT 3.0 (июнь 2017 года); ведется работа над версией 4.0. Эти версии не получили такого широкого распространения, как 1.0: основными реализациями, широко используемыми в 2023 году, являются Saxon (доступный в различных версиях для разных платформ, включая веб-браузеры) и Altova RaptorXML.
actively used in 2023 include those integrated into the mainstream web browsers, as well as Altova's RaptorXML, libxslt, Saxon, the Microsoft NET implementation System. Xml. Xsl, and Xalan which is integrated into the Oracle JVM. These products all have a high level of conformance to the specification, though they also offer proprietary vendor extensions, and some of them omit support for optional features such as disable output escaping. Subsequent versions of XSLT include XSLT 2.0 (January 2007) and XSLT 3.0 (June 2017); there is work in progress on a version 4.0. These versions have not been as widely implemented as 1.0: the main implementations in widespread use in 2023 are Saxon (available in various versions for different platforms, including web browsers), and Altova's RaptorXML.
XPath
XML Path Language (XPath), сам по себе являясь частью семейства XSL, используется в XSLT для навигации по XML-документу. Другой проект консорциума W3C, XQuery, призван обеспечить схожие возможности для запроса XML-документов с применением XPath.