XSLT - это язык преобразования XML, предназначенный для преобразования структурированных документов в другие форматы (например, XML, HTML и простой текст или, в XSLT 3, JSON). Вопросы должны использовать один из тегов xslt-1.0, xslt-2.0 или xslt-3.0 в зависимости от ситуации.

XSLT


Новости: по состоянию на 8 июня 2017 г. XSLT 3.0является рекомендацией консорциума W3C


Преобразования расширяемого языка стилей (XSLT) - это язык программирования для преобразования документов XMLв другие документы XML, текстовые документы или HTMLдокументов. Возможны другие форматы вывода (например, преобразования PDFс использованием XSL - FO) .

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

Типичное преобразование выполняется следующим образом:

  1. Создается таблица стилей (обычно это .xsl файл).
  2. Создан источник данных XML (например, файл .xml).
  3. Процессор XSLT загружен как содержимым XSL, так и XML.
  4. XML-документ анализируется в дереве модели данных XPath (XDM) (XDM аналогично DOM) .
  5. Дерево XDM обходится для получения результирующего документа.

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

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

XSLT-процессоры и библиотеки

Процессоры XSLT 3.0

Процессоры XSLT 3.0 имеют обратную совместимость с XSLT 2.0 и обычно также XSLT 1.0.

  • Saxonпредоставляет бесплатные и коммерческие процессоры и библиотеки XSLT 1.0, 2.0 и 3.0 для командной строки
  • Exseltпредоставляет бесплатный и коммерческий процессор командной строки XSLT 3.0 и библиотеки для .NET, с поддержкой пакетов и потоковой передачи.
  • Raptor XML- это процессор Altova для XML и XBRL, который с 2017 года поддерживает XSLT 1.0, 2.0 и XSLT 3.0, кроме потоковой передачи. Бесплатная версия командной строки раньше существовала, но больше не доступна для скачивания.

Процессоры XSLT 2.0

Обратная совместимость с XSLT 1.0 необязательна, но большинство процессоров поддерживают это

  • Saxon, Raptor XMLи Exselt, перечисленные выше, также поддерживают XSLT 2.0
  • QtXmlPatterns- это библиотека для использования XSLT 2.0 с Qtдля C ++, но его создатели считают экспериментальным
  • xmlpatterns - это утилита командной строки C ++, использующая Qt для запуска XSLT 2.0 или XQuery
  • gexslt Gobo XSLT 2.0процессор XSLT 2.0, написанный на Eiffel, похоже, более не поддерживается, но поддерживает почти все XPath 2.0и большинство XSLT 2.0. Поставляется в качестве процессора командной строки или Eiffelбиблиотеки.
  • jd.xslt- это Java-реализация XSLT 1.1(спецификация была снята в пользу 2.0, но уже имеет много функций 2.0)
  • SOA Expressway XSLTявляется процессором Intel XSLT 2.0 в составе SOA Expressway, отдельная загрузка больше недоступна, за исключением через Wayback Machine
  • PsychoPathподдерживает XPath 2.0 для использования в Eclipseс XSLT
  • Расширение XSLT 2.0 для Xerces, частично реализовано, но, похоже, больше не поддерживается
  • Gestalt, процессор XSLT 2.0, который лег в основу gexslt
  • IBM XML Feature Pack для WebSphereподдерживает XSLT 2.0, XPath 2.0 и XQuery 1.0
  • MarkLogic- это база данных XML, которая включает в себя собственный процессор XSLT 2.0
  • XMLPrimeпредоставляет процессор XSLT 2.0 для платформы .NET

Процессоры XSLT 1.0

Неполный список известных и менее известных процессоров XSLT 1.0:

  • XT, самый первый процессор XSLT 1.0 Джеймса Кларка, все еще доступный для загрузки
  • Xalan-Java- бесплатный процессор XSLT 1.0 для Java
  • Xalan-C- бесплатный процессор XSLT 1.0 для C ++
  • System.Xml.Xslсодержит управляемый Microsoft .NET XSLT 1.0 процессор
  • MSXMLсодержит встроенный процессор Microsoft ActiveX XSLT 1.0, используемый в версиях Internet Explorer
  • xsltc- это процессор командной строки для создания скомпилированного .NET сборки для преобразований XSLT 1.0, не путайте с xsltc Xalan
  • xsltproc или libxslt- это библиотека C для XSLT 1.0 для проекта GNOME, эта версия используется PHP и другими языками, которые компилируются в C
  • TransforMiiX- процессор XSLT 1.0 Mozilla Firefox, из которых stand-alone версияможет быть построена.
  • Sablotron процессор XSLT 1.0, написанный на C ++
  • Minoru XSLили MDC-XSL - процессор XSLT 1.0, написанный на C ++, похоже, заброшен
  • Xsltp.pl, XSLT 1.0-совместимый процессор, изначально написанный на Perl
  • XML :: XSLTмодуль Perl с частично завершенным процессором XSLT 1.0
  • CFX XSLTпроцессор XSLT 1.0 с открытым исходным кодом для ColdFusion
  • XSLJITот DataPower, XSLT-процессор с аппаратным ускорением, теперь используемый в WebSphere с XA35

Процессоры JavaScript XSLT 2.0

Эти процессоры включают XSLT 2.0 в браузере.

  • Frameless- это легкая частичная XSLT 2.0-реализация XSLT в JavaScript для использования в браузере
  • Saxon CE- это процессор Saxon XSLT 2.0, кросс-скомпилированный с JavaScript для использования в браузере
  • XSLTy- версия Saxon-CE для командной строки и поддерживает XSLT 2.0; это требует PhantomJS
  • плагин jQuery XPath 2.0, хотя и не является процессором XSLT, он позволяет использовать XPath 2.0 изнутри jQuery и, следовательно, изнутри браузер, который представляет интерес для большой группы пользователей.

Процессоры JavaScript XSLT 3.0

Эти процессоры включают XSLT 3.0 в браузере.

  • Saxon-JSэффективно заменяет Saxon-CE. Это среда выполнения XSLT 3.0, написанная на чистом JavaScript. Он выполняет таблицы стилей, которые должны быть скомпилированы Saxon-EE напрямую или из среды, такой как oXygenXML-редактор, который включает Saxon-EE.

Обертки JavaScript для XSLT 1.0 в браузере

  • JAXP- это API-интерфейс Java для XML, необходимый при выполнении преобразований в Java с помощью фабрики преобразователей
  • 4XSLT, часть 4Suite, представляет собой процессор командной строки с открытым исходным кодом для XSLT 1.0, используемый в системах Unix, посмотреть страницу man
  • xslt.js - это оболочка XSLT 1.0 с открытым исходным кодом для преобразований в браузере
  • Sarissa- это надежная оболочка XSLT 1.0 и XML с открытым исходным кодом для преобразований в браузере

Инструменты и библиотеки

Различные библиотеки и инструменты включают в себя:

  • EXSLT, полустандартизированный набор функций и инструкций расширения XSLT 1.0
  • FXSL, совместимая с XSLT 1.0 и XSLT 2.0 и 3.0 библиотека большого набора функций
  • xslt-sb, большой набор функций XSLT 2.0, обширная документация на немецком языке
  • DocBook XSLбольшой набор таблиц стилей XSLT для отображения XML DocBookдля PDF, HTML или электронной книги
  • FunctX- это большой набор функций XQuery и XSLT 2.0
  • Стандартная библиотека XSLTпредоставляет большой набор часто используемых функций XSLT 1.0.
  • XTCМодульное тестирование в XSLT и XQuery
  • Kernow- это бесплатный пользовательский интерфейс для запуска нескольких таблиц стилей и источников с помощью Saxon 9.x
  • IronXSLTдля поддержки intellisense XSLT в более старых версиях Visual Studio (в более новых версиях включен XSLT 1.0 intellisense)
  • Зарегистрировать исправлениедля Visual Studio 2008 XSLT intellisense
  • Calabash- это реализация XProc, стандартизированного конвейерного языка XML, используемого для многоэтапной обработки XML
  • EXPath- это совместная работа по определению расширений XPath (и, следовательно, XSLT), включая ZIP Facility, обработка двоичных данных, модуль HTTPи т. д. Он возник из EXSLT 2.0.
  • SOAP и HTTP расширения для Saxon
  • XmlSpectrum - подсветка синтаксиса для XSLT / XPath 3.0 - написана на XSLT
  • См. Также список инструментов, использующих XPathили основанных на технологиях, связанных с XSLT.

История

XSLT был предложен W3Cи имеет три стандарта: 1.0в 1999 году, 2.0в 2007 году и 3.0, который был опубликован в 2017 году.

Метки вопроса

Вопросы должны использовать один из xslt-1.0, xslt-2.0или < теги href = "/ tags / xslt-3.0"> xslt-3.0 в зависимости от ситуации, чтобы уточнить, какую версию XSLT требует вопрос или на который он ссылается. Если вы не уверены, какую версию поддерживает ваш процессор, вы можете проверить ее с помощью XSLT, используя <xsl:value-of select="system-property('xsl:version')"/>, например, запустив таблицу стилей (самозадействующие XML и XSLT) https://martin-honnen.github.io/xslt/processorTest3.xmlчерез ваш процессор.

XSLT Editors

Оффлайн редакторы

  • oXygen XML Editor(oxygenxml), кроссплатформенный редактор XML с расширенным XSLT и поддержка XQuery, включая мощный отладчик и профилировщик производительности
  • Stylus Studio- это редактор XML, XQuery и XSD, включающий поддержку XSLT.
  • Altova- это графический пользовательский интерфейс для проектирования сопоставлений между файлами XML для создания XSLT путем перетаскивания.
  • Liquid XMLпозволяет отлаживать XSLT и проектировать XSLT и XML графически
  • EditiX- редактор XML с поддержкой XSD, XSLT 1.0, 2.0 и 3.0 и поставляется с отладчиком и профилировщиком.

Онлайн редакторы

Ресурсы

Курсы обучения онлайн

  1. Основы XSLT 2 и XSLT 1- курс Pluralsight от Дмитрий Новатчев
  2. Эволюция XPath: что нового в XPath 3.0- видеокурс о Pluralsight ( 4,5Н )
  3. Что нового в XSLT 3.0: часть 1"- видео Pluralsight Конечно (5,5 ч), Дмитрий Новатчев