Jump to content

Саксонский XSLT

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

Текущая версия по состоянию на январь 2023 г. — 12.0. [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 как необязательные), включая понимание схемы и потоковую передачу, а также функции, связанные с производительностью, такие как многопоточное выполнение и генерация байт-кода.

Java-C#, Продукт SaxonCS создан на основе исходной базы Java с помощью специального транспилятора написанного на 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. Процессор, поддерживающий схему, может использовать XML-схему W3C для определения типов данных различных элементов в исходном 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-схему 1.0 и 1.1. По состоянию на 2021 год текущая версия (10.6) соответствует рекомендациям W3C для XSLT 3.0, XPath 3.1 и XQuery 3.1.

Исходный код Saxon написан на Java. В течение 2005–2006 годов Дэвид Петерсон и другие продемонстрировали, что 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. исходного кода, но его можно бесплатно использовать в браузере или в Node.js. В отличие от Saxon-HE и прекращенного Saxon-CE, SaxonJS не имеет открытого [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» .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: dae001be219e3335a4f0e0f33d763e0d__1674257520
URL1:https://arc.ask3.ru/arc/aa/da/0d/dae001be219e3335a4f0e0f33d763e0d.html
Заголовок, (Title) документа по адресу, URL1:
Saxon XSLT - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)