Саксонский XSLT

Saxon — это процессор XSLT и XQuery, созданный Майклом Кейем и в настоящее время разрабатываемый и поддерживаемый основанной им компанией Saxonica. Существуют коммерческие версии с открытым и закрытым исходным кодом . Существуют версии для Java , JavaScript [1] и .NET .

Текущая версия по состоянию на сентябрь 2024 года — 12.5. [2]

Версии

Первоначальная линия разработки Saxon завершилась серией версии 6. Это серия процессоров XSLT 1.0. Текущая версия 6.5.5 не претерпевает дальнейшей разработки, за исключением поддержки. Серия 6 доступна только для языка программирования Java.

Текущая линия разработки, Saxon 12, реализует спецификации XSLT 3.0 и XQuery 3.1. Saxon 12 может обрабатывать таблицы стилей XSLT 1.0 и XSLT 2.0. (XSLT 2.0 и 3.0 обладают высокой обратной совместимостью с XSLT 1.0. [3] ), а также включает выборочную поддержку предлагаемой спецификации XSLT 4.0. [4]

Существуют две отдельные исходные базы: исходный код Java и исходный код JavaScript. Исходный код Java используется для генерации продуктов для трех платформ: SaxonJ (для Java и других языков JVM, таких как Scala), SaxonCS (для C# и других языков .NET, таких как VB.NET) и SaxonC (с API для C, C++, Python и PHP). Исходная база JavaScript используется для генерации SaxonJS, который работает в веб-браузерах и под управлением Node.js.

Версии Java-сборки поставляются на трех уровнях: Home Edition предлагает минимальный уровень соответствия стандартам, определенный в спецификациях, как продукт с открытым исходным кодом. Professional Edition добавляет специфичные для поставщика функции, не требуемые стандартами, например, ряд функций расширения и параметров сериализации. Enterprise Edition добавляет расширенные функции (определенные в стандартах W3C как необязательные), включая знание схемы и потоковую передачу, а также функции, связанные с производительностью, такие как многопоточное выполнение и генерация байт-кода.

Продукт SaxonCS создан на основе исходного кода Java с помощью специального транспилятора Java-to-C# , написанного на XSLT (см. https://markupuk.org/webhelp/index.html#ar04.html). По состоянию на апрель 2022 года на этой платформе предлагается только Enterprise Edition.

С 2004 по 2009 год Saxon был доступен в двух отдельных формах: Saxon-B и Saxon-SA. Обе они были построены на схожих кодовых базах. Saxon-B был программным обеспечением с открытым исходным кодом , выпущенным по лицензии Mozilla Public License , в то время как Saxon-SA был коммерческим продуктом с закрытым исходным кодом.

Разница между Saxon-B и Saxon-SA заключалась в том, что B был «базовым», а SA — «поддерживал схему». Эти термины являются ссылками на термины в спецификации XSLT 2.0 и XQuery 1.0. Процессор, «поддерживающий схему», может использовать схему W3C XML для определения типов данных различных элементов в исходном XML-документе(ах). Затем эти типы данных можно использовать в командах XPath 2.0 и XSLT 2.0. «Базовый» процессор XSLT 2.0 не может использовать информацию о типизации данных.

Saxon предлагает строгое соответствие рекомендациям W3C XSLT 2.0, XPath 2.0 и 3.0, а также XQuery 1.0 и 3.0, а также реализует XML Schema 1.0 и 1.1. По состоянию на 2021 год текущая версия (10.6) соответствует рекомендациям W3C для XSLT 3.0, XPath 3.1 и XQuery 3.1.

Исходный код Saxon написан на Java. В 2005-6 годах М. Дэвид Петерсон и другие продемонстрировали, что Saxon может быть кросс-компилирован для запуска на .NET с использованием кросс-компилятора IKVM.NET , запустив Saxon.NET как отдельный продукт, независимый от первоначального разработчика. С выпуском Saxon 8.7 Saxonica приняла эту технологию, и с этого выпуска все версии выпускались одновременно для Java и .NET. Версия продукта для .NET не содержит функций, специфичных для платформы Java (таких как интеграция с JDOM , Dom4j и XOM ), а вместо этого предоставляет функции, которые интегрируются с возможностями обработки XML платформы .NET.

В 2012 году, после серии прототипов, Saxonica выпустила Saxon Client Edition (Saxon-CE), версию продукта, адаптированную для работы в среде браузера. Это достигается путем адаптации исходного кода Java таким образом, чтобы его можно было кросс-компилировать в JavaScript с помощью кросс-компилятора GWT, созданного Google . Saxon-CE предоставляет первую реализацию XSLT 2.0, работающую в браузере, а также расширяет язык таким образом, чтобы вместо того, чтобы просто генерировать HTML, он мог напрямую обрабатывать взаимодействие с пользователем. С выпуском Saxon-CE 1.1 в феврале 2013 года продукт стал продуктом с открытым исходным кодом. В феврале 2016 года Майкл Кей объявил, что Saxonica работает над заменой Saxon-CE, написанной на чистом JavaScript и названной Saxon-JS. [5]

Майкл Кей , автор Saxon, был редактором спецификации XSLT 2.0, а также является редактором проекта XSLT 3.0.

Функции

Версии Saxon, доступные для платформ Java, C (включая PHP и Python) и .NET, построены на основе единой кодовой базы. Последняя версия построена с использованием транспилятора . [6] Все версии технологических платформ обладают одинаковыми возможностями и доступны с тремя различными наборами функций на двух различных условиях лицензирования. Для каждой из этих технологических платформ существует продукт с открытым исходным кодом Saxon-HE, лицензированный по MPL -2.0. Он предоставляет базовую функциональность XSLT 3.0, XPath 3.1 и XQuery 3.1, как определено соответствующими спецификациями. Кроме того, Saxon-HE реализует определенные функции, которые спецификация XSLT 3.0 объявляет необязательными и которые ранее были зарезервированы для коммерческих версий, такие как динамическая оценка XPath 3.1 и функции более высокого порядка в XSLT 3.0. Коммерческие версии называются Saxon-PE и Saxon-EE. Подробную и актуальную матрицу функций можно найти на веб-сайте Saxonica.

Четвертая технологическая платформа — JavaScript. Ранее процессор XSLT с открытым исходным кодом Saxon-CE был кросс-компилирован из общего исходного кода Java с использованием GWT . SaxonJS — это совершенно новая реализация на JavaScript. Исходные коды XSLT могут быть скомпилированы с использованием Saxon-EE или с использованием встроенного компилятора XSLT на основе XSLT, который создает менее оптимизированный код. С другой стороны, компилятор XSLT на основе XSLT допускает динамическую компиляцию и выполнение XSLT. Хотя SaxonJS поддерживает большинство функций XSLT 3.0 и XPath 3.1, доступных в Saxon-HE, SaxonJS не поддерживает XQuery. В отличие от Saxon-HE и прекращенного Saxon-CE, SaxonJS не является проектом с открытым исходным кодом, но его можно использовать бесплатно в браузере или в Node.js. [7 ]

Смотрите также

Ссылки

  1. ^ «Саксонский клиентский выпуск 1.0» . Саксоника . Проверено 14 августа 2012 г.
  2. ^ Официальный сайт Saxon XSLT
  3. ^ Эта рекомендация основана на успехе [XSLT 1.0], опубликованного 16 ноября 1999 года. В язык было добавлено много новых функций (см. J.2 Новые функциональные возможности), при этом сохраняя высокий уровень обратной совместимости. XSL-преобразования (XSLT) версии 2.0
  4. ^ XSL-преобразования (XSLT) версии 4.0.
  5. ^ «Представляем Saxon-JS».
  6. ^ https://www.saxonica.com/papers/markupuk-2021mhk.pdf [ пустой URL-адрес PDF ]
  7. ^ «Документация SaxonJS».
  • Домашняя страница Saxon-B
  • Домашняя страница Saxonica для Saxon-SA
  • Инструменты Saxon XQuery
  • AntillesXML (графический интерфейс для саксонского языка)
  • описание саксонского (немецкий)
Взято с "https://en.wikipedia.org/w/index.php?title=Saxon_XSLT&oldid=1247445068"