Технология XSLT
Шрифт:
Процессор Sablotron
Основные данные процессора.
□ Платформы: С++, Perl, PHP, Python.
□ Расширения: нет.
□ Полнота реализации: XSLT 1.0 и XPath 1.0 реализованы не полностью.
□ Разработчик: Ginger Alliance.
□ URL: http://www.gingerall.com.
XSLT-процессор Sablotron, разработанный в Ginger Alliance, — это еще один пример весьма успешного open source проекта в области XML-технологий. Sablotron — это библиотека для преобразования XML-документов, которая построена (вернее, почти построена) в соответствии
К сожалению, реализация XSLT и XPath в Sablotron вызывает определенные нарекания. В текущей версии (0.71) Sablotron далеко не полностью поддерживает эти стандарты: например, в путях выборки не работают оси навигации
Использование
Особую популярность процессору Sablotron'у придает наличие для него расширений под языки Perl, PHP и Python. Долгое время Sablotron был единственным XSLT-процессором, который существовал для Perl, и поэтому Perl-программистам для выполнения XSLT-преобразований не оставалось ничего, кроме как использовать Sablotron.
Помимо интерфейсов для С++, Perl, Python и PHP, для Sablotron также существует утилита для выполнения преобразований из командной строки
Процессор xt
Характеристики процессора.
□ Платформы: Java.
□ Расширения: функции расширения, некоторые элементы расширения.
□ Полнота реализации: практически полностью реализует XSLT версии PR-xslt-19991008.
□ Разработчик: Джеймс Кларк (James Clark).
□ URL: http://www.jclark.com/xml/xt.html.
Без всякого сомнения, xt является легендарным процессором. Он был написан Джеймсом Кларком - человеком, чей вклад в технологию XSLT сложно переоценить. Кларк был редактором первой версии XSLT, а его процессор xt был одним из первых прототипов, реализующих новый язык. На xt практическим способом было проверено, множество идей, касающихся XSLT, ведь мало создать мощный язык — нужно еще и позаботиться о том, чтобы его можно было реализовать на практике в интерпретаторах, процессорах и компиляторах.
Процессор xt, безусловно, сыграл свою роль в развитии технологии XSLT. К сожалению, Джеймс Кларк более не продолжает этот проект. Версия от 5 ноября 1999 года является последней версией xt. Она все еще доступна на Web-сайте http://www.jclark.com/xml/xt.html, но более не поддерживается.
В последней (если
Использование
Как и любой другой XSLT-процессор, написанный на Java, xt можно без труда использовать в Java-проектах. Помимо этого, xt можно использовать в качестве сервлета и из командной строки.
Сервлет-версия xt реализована в классе
Версия xt для командной строки позволяет выполнять преобразования посредством следующей команды:
В этой команде параметр SAX-драйвер указывает на класс, который xt будет использовать в качестве SAX-парсера для разбора входящего документа.
Для платформы Windows32 процессор xt поставляется также в уже скомпилированной версии. Его запуск в этом случае выглядит как
Расширения
В xt реализован стандартный метод вызова Java-функций расширения (если быть до конца откровенными, Кларк фактически и придумал этот "стандартный" способ). Функции реализуются в Java-классах, которые затем подключаются при помощи URI пространств имен.
Сверх этого, xt также реализует несколько дополнительных функций для операций над множествами (
Библиотека libxslt
Основные характеристики.
□ Платформы: C/Gnome, Perl, Python.
□ Расширения: функции и элементы расширения.
□ Полнота реализации: практически полное соответствие XSLT 1.0.
□ Разработчик: Даниел Вейлард (Daniel Veillard).
□ URL: http://xmlsoft.org/XSLT/.
Наравне с Saxon и xt, библиотека libxslt является еще одним примером того, насколько сильным может быть open-source продукт, даже если он создается, в основном, одним человеком. Библиотека libxslt изначально создавалась для поддержки XSLT-преобразований в проекте Gnome. Для разбора XML, работы с древовидными структурами и вычисления XPath-выражений libxslt использует другую Gnome-библиотеку: libxml. Библиотека libxslt написана практически на чистом ANSI С (языке С стандарта ANSI) и работает на таких платформах, как Linux, Unix и Windows32.