Saxon - это процессор XSLT и XQuery , созданный Майклом Каем, а теперь разрабатываемый и поддерживаемый его компанией Saxonica. Существуют коммерческие версии с открытым исходным кодом, а также с закрытым исходным кодом . Существуют версии для Java , JavaScript [1] и .NET .
Текущая версия по состоянию на май 2020 года - 10.1. [2]
Версии
Первоначальная линия разработки Saxon закончилась версией 6 серии. Это серия процессоров XSLT 1.0. Текущая версия 6.5.5 не подвергается дальнейшему развитию, кроме обслуживания. Серия 6 доступна только для языка программирования Java.
Текущая линия разработки, Saxon 10, реализует спецификации XSLT 3.0 и XQuery 3.1. Saxon 10 также может обрабатывать файлы XSLT 1.0. (XSLT 2.0 имеет обратную совместимость с XSLT 1.0. [3] )
С 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 не может использовать информацию о типе данных.
С выпуском версии 9.2 в августе 2009 г. упаковка была изменена и теперь были созданы три версии: домашняя версия (HE), профессиональная версия (PE) и корпоративная версия (EE). Домашняя версия имеет открытый исходный код и бесплатна, другие версии доступны по коммерческим лицензиям. Переименование с SA на EE было сделано, чтобы подчеркнуть, что коммерческий продукт к настоящему времени включает множество дополнительных функций, помимо понимания схемы, в том числе более продвинутый оптимизатор и возможность потоковой обработки XSLT и XQuery, что позволяет обрабатывать очень большие исходные документы без соответствующего большой объем памяти.
Saxon предлагает строгое соответствие рекомендациям XSLT 2.0, XPath 2.0 и 3.0 и XQuery 1.0 и 3.0 W3C, а также реализует схемы XML 1.0 и 1.1. По состоянию на 2016 год текущая версия (9.7) также реализует большинство функций черновика Рекомендаций для 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. [4]
Майкл Кей , автор Saxon, был редактором спецификации XSLT 2.0, а также редактором проекта XSLT 3.0.
Функции
В этой таблице показано, какие функции доступны в текущих версиях Saxon. Версии для Java и .NET построены из единой кодовой базы, поэтому имеют одни и те же функции. Суффиксы * HE *, * PE *, * EE * и * CE * относятся к выпускам Home, Professional, Enterprise и Client соответственно: Saxon-HE и -CE имеют открытый исходный код, а версии -PE и -EE доступны по коммерческой лицензии.
Более подробную и актуальную матрицу функций можно найти на веб-сайте Saxonica .
Характерная черта | Saxon 6.5.5 (только для Java) | Saxon HE 9.5 (домашняя версия, MPL -2.0) | Saxon PE 9.5 (профессиональная версия, коммерческая) | Saxon EE 9.5 (Enterprise Edition, коммерческая) | Saxon CE 1.1 (клиентская версия, только JS , MPL -2.0) |
---|---|---|---|---|---|
Поддержка XSLT 1.0 | да | Через обратно совместимое поведение | Через обратно совместимое поведение | Через обратно совместимое поведение | Через обратно совместимое поведение |
Поддержка XSLT 2.0 | - | да | да | да | да |
Поддержка XSLT 3.0 | - | - | да | да | - |
Поддержка XPath 1.0 | да | В режиме совместимости с XPath 1.0 | В режиме совместимости с XPath 1.0 | В режиме совместимости с XPath 1.0 | Только в XSLT |
Поддержка XPath 2.0 | - | да | да | да | Только в XSLT |
Поддержка XPath 3.0 | - | - | да | да | - |
Поддержка XQuery 1.0 | - | да | да | да | - |
Поддержка XQuery 3.0 | - | - | да | да | - |
Поддержка XQueryX | - | - | - | - | - |
Поддержка XQuery Updates 1.0 | - | - | да | да | - |
Полнотекстовая поддержка XQuery / XPath | - | - | - | - | - |
Поддержка XML Schema 1.0 | - | - | - | да | - |
Поддержка XML Schema 1.1 | - | - | - | да | - |
Поддержка функции сериализации | да | да | да | да | - |
Поддержка функции статической печати | - | - | - | - | - |
xml: поддержка id 1.0 | - | да | да | да | да |
Поддержка инструкций по обработке таблиц стилей XML | да | да | да | да | через таблицу стилей начальной загрузки XSLT 1.0 |
Расширенные функции расширения | - | - | да | да | - |
Расширенный оптимизатор | - | - | - | да | - |
Потоковая передача | - | - | - | да | - |
Генерация байт-кода | - | - | - | да | - |
Смотрите также
Рекомендации
- ^ "Saxon Client Edition 1.0" . Саксоника . Проверено 14 августа 2012 года .
- ^ Официальный сайт Saxon XSLT
- ^ Эта Рекомендация основывается на успехе [XSLT 1.0], который был опубликован 16 ноября 1999 г. В язык было добавлено много новых функций (см. J.2 Новые функции) при сохранении высокого уровня обратной совместимости. Преобразования XSL (XSLT) Версия 2.0
- ^ http://dev.saxonica.com/blog/mike/2016/02/introduction-saxon-js.html