Чтение онлайн

на главную

Жанры

Технология 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 и DOM. Процессор Sablotron изначально написан на С++ и компилируется под несколько платформ, в числе которых Linux, Windows 32, Solaris, HP-UX, FreeBSD, OpenBSD, OpenServer и UnixWare. Открытый код также позволяет переносить Sablotron под другие платформы, так что этот список, вполне возможно, будет расширен.

К сожалению, реализация XSLT и XPath в Sablotron вызывает определенные нарекания. В текущей версии (0.71) Sablotron далеко не полностью поддерживает эти стандарты: например, в путях выборки не работают оси навигации

following
и
preceding
, некоторые функции (как то:
id
,
lang
,
unparsed-entity-uri
) не реализованы вообще, многие из функций и элементов реализованы не до конца или работают не в полном соответствии со спецификациями. В общем, соответствие Sablotron стандартам оставляет желать лучшего, хотя и в таком виде он является вполне функциональным процессором.

Использование

Особую популярность процессору Sablotron'у придает наличие для него расширений под языки Perl, PHP и Python. Долгое время Sablotron был единственным XSLT-процессором, который существовал для Perl, и поэтому Perl-программистам для выполнения XSLT-преобразований не оставалось ничего, кроме как использовать Sablotron.

Помимо интерфейсов для С++, Perl, Python и PHP, для Sablotron также существует утилита для выполнения преобразований из командной строки

sabcmd
:

sabcmd stylesheet.xsl source.xml result.xml

Процессор 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, но более не поддерживается.

В последней (если

не сказать, финальной) версии xt язык XSLT реализован в почти полном соответствии с версией PR-xslt-19991008. Буквы PR в этом коде означают "proposed recommendation" (англ. предлагаемая рекомендация). PR - это одна из последних стадий принятия нового стандарта в Консорциуме W3, так что можно сказать, что xt реализует почти стандартную версию XSLT. Процессор xt имеет ряд ограничений и недоработок, но уже поздно надеяться, что они будут когда-либо исправлены.

Использование

Как и любой другой XSLT-процессор, написанный на Java, xt можно без труда использовать в Java-проектах. Помимо этого, xt можно использовать в качестве сервлета и из командной строки.

Сервлет-версия xt реализована в классе

com.jclark.xsl.sax.XSLservlet
и может выполняться на контейнерах, поддерживающих Java Servlet API версии 2.1 и выше.

Версия xt для командной строки позволяет выполнять преобразования посредством следующей команды:

java -Dcom.jdark.xsl.sax.parser=SAX-драйвер com.jclark.xsl.sax.Driver source.xml stylesheet.xsl result.xml

В этой команде параметр SAX-драйвер указывает на класс, который xt будет использовать в качестве SAX-парсера для разбора входящего документа.

Для платформы Windows32 процессор xt поставляется также в уже скомпилированной версии. Его запуск в этом случае выглядит как

xt source.xml stylesheet.xsl result.xml

Расширения

В xt реализован стандартный метод вызова Java-функций расширения (если быть до конца откровенными, Кларк фактически и придумал этот "стандартный" способ). Функции реализуются в Java-классах, которые затем подключаются при помощи URI пространств имен.

Сверх этого, xt также реализует несколько дополнительных функций для операций над множествами (

xt:node-set
,
xt:intersection
и
xt:difference
) и дополнительный элемент
xt:document
, который позволяет выводить результат преобразования сразу в несколько выходящих файлов. Позже эта же концепция была реализована в некоторых других процессорах и перенесена в версию XSLT 1.1.

Библиотека 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.

Поделиться:
Популярные книги

Live-rpg. эволюция-3

Кронос Александр
3. Эволюция. Live-RPG
Фантастика:
боевая фантастика
6.59
рейтинг книги
Live-rpg. эволюция-3

Я – Орк

Лисицин Евгений
1. Я — Орк
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я – Орк

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец

Корпулентные достоинства, или Знатный переполох. Дилогия

Цвик Катерина Александровна
Фантастика:
юмористическая фантастика
7.53
рейтинг книги
Корпулентные достоинства, или Знатный переполох. Дилогия

Князь Мещерский

Дроздов Анатолий Федорович
3. Зауряд-врач
Фантастика:
альтернативная история
8.35
рейтинг книги
Князь Мещерский

Генерал-адмирал. Тетралогия

Злотников Роман Валерьевич
Генерал-адмирал
Фантастика:
альтернативная история
8.71
рейтинг книги
Генерал-адмирал. Тетралогия

Идеальный мир для Лекаря 3

Сапфир Олег
3. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 3

Делегат

Астахов Евгений Евгеньевич
6. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Делегат

Болотник 2

Панченко Андрей Алексеевич
2. Болотник
Фантастика:
попаданцы
альтернативная история
6.25
рейтинг книги
Болотник 2

Возвышение Меркурия. Книга 17

Кронос Александр
17. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 17

Курсант: Назад в СССР 11

Дамиров Рафаэль
11. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 11

Я – Орк. Том 4

Лисицин Евгений
4. Я — Орк
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я – Орк. Том 4

Восход. Солнцев. Книга XI

Скабер Артемий
11. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга XI

Мимик нового Мира 4

Северный Лис
3. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 4