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, может использоваться, например, таблицы реляционных баз данных или географические информационные системы.
Типичное преобразование выполняется следующим образом:
- Создается таблица стилей (обычно это
.xsl
файл). - Создан источник данных XML (например, файл
.xml
). - Процессор XSLT загружен как содержимым XSL, так и XML.
- XML-документ анализируется в дереве модели данных XPath (XDM) (XDM аналогично DOM) .
- Дерево 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 и поставляется с отладчиком и профилировщиком.
Онлайн редакторы
- Xsltransform.net- онлайн-среда IDE для XSLT 1.0, 2.0, позволяющая сохранять фрагменты кода для всеобщего ознакомления
- Интегрированная среда разработки для XSLT 1 и 2, копия xsltransform.net
- .NET XSLT fiddle - это ASP.NET MVC 5 "клон" платформы Java / play, основанный на xsltransform.netи позволяет тестировать и запускать XSLT 3 и 2 с Saxon 9.8 HE и XSLT 1 с XslCompiledTransform, MSXML 6 и процессором браузера XSLT
- Онлайн-сервис XSLT 2.0, предоставляемый W3C, можно использовать для тестирования ваших таблиц стилей XSLT
- XPathTesterдля тестирования XPath, XSLT или XQuery онлайн, поддерживает версии 1.0 и 2.0
Ресурсы
- Ресурсы XML-трансформации в W3C
- XSLT в Википедии
- XML в Википедии
- Загрузка книги Дж. Кена Холмана «Практическое преобразование с использованием XSLT и XPath», охватывающей XSLT и XPath 2.0, а также 1.0
Курсы обучения онлайн
- Основы XSLT 2 и XSLT 1- курс Pluralsight от Дмитрий Новатчев
- Эволюция XPath: что нового в XPath 3.0- видеокурс о Pluralsight ( 4,5Н )
- Что нового в XSLT 3.0: часть 1"- видео Pluralsight Конечно (5,5 ч), Дмитрий Новатчев