Описание тега xslt
XSLT
Новости: По состоянию на 8 июня 2017 г. XSLT 3.0 является Рекомендацией Консорциума W3C.
Extensible Stylesheet Language Transformations (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 - это процессор XML и XBRL Altova, который с 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, автономная версия которого может быть создана.
- 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.
- Процессор XSLT 1.0 с открытым исходным кодом CFX XSLT для 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 напрямую или из среды, такой как XML-редактор oXygen, который включает Saxon-EE.
Оболочки JavaScript для XSLT 1.0 в браузере
- JAXP - это Java API для XML, необходимый при выполнении преобразований в Java через фабрику преобразователей.
- 4XSLT, часть 4Suite, представляет собой процессор командной строки с открытым исходным кодом для XSLT 1.0, используемый в системах Unix, см. Справочную страницу
- 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 для рендеринга DocBook XML для PDF, HTML или электронных книг.
- FunctX - это большой набор функций XQuery и XSLT 2.0.
- Стандартная библиотека XSLT предоставляет большой набор часто используемых функций XSLT 1.0.
- Модульное тестирование XTC в XSLT и XQuery
- Kernow - это бесплатный пользовательский интерфейс для запуска нескольких таблиц стилей и источников с Saxon 9.x
- IronXSLT для поддержки XSLT intellisense в более старых версиях Visual Studio (в более новых версиях включен XSLT 1.0 intellisense)
- Зарегистрируйте исправление для Visual Studio 2008 XSLT intellisense
- Calabash - это реализация XProc, стандартизированного языка конвейера XML, используемого для многоэтапной обработки XML.
- EXPath - это совместная работа по определению расширений XPath (и, следовательно, XSLT), включая средство ZIP, обработку двоичных данных, модуль 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 или xslt-3.0, чтобы уточнить, какую версию XSLT требует или на которую ссылается вопрос. Если вы не уверены, какую версию поддерживает ваш процессор, вы можете проверить ее с помощью XSLT, используя<xsl:value-of select="system-property('xsl:version')"/>
, например, запустив таблицу стилей (саморегулирующиеся XML и XSLT) https://martin-honnen.github.io/xslt/processorTest3.xml через ваш процессор.
Редакторы XSLT
Офлайн-редакторы
- oXygen XML Editor ( xygenxml), кроссплатформенный 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, а также отладчик и профилировщик.
Онлайн-редакторы
- http://xsltransform.net/ - онлайн-среда IDE для XSLT 1.0, 2.0, позволяет сохранять фрагменты кода для публичного ознакомления.
- Интернет-среда IDE для XSLT 1 и 2, копия http://xsltransform.net/
- Сценарий.NET XSLT представляет собой "клон" ASP.NET MVC 5 платформы Java/play на основе http://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 от Dimitre Novatchev
- Эволюция XPath: что нового в XPath 3.0 - видеокурс Pluralsight (4,5 часа)
- " Что нового в XSLT 3.0: Часть 1 " - видеокурс Pluralsight (5,5 часа), автор Димитр Новачев