Kniga-Online.club

Алексей Валиков - Технология XSLT

Читать бесплатно Алексей Валиков - Технология XSLT. Жанр: Программирование издательство -, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

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

Легкий вариант, Instant Saxon представляет собой утилиту командной строки saxon.exe, с помощью которой можно применять преобразования к XML-документам:

saxon.exe -о result.xml source.xml stylesheet.xsl

Полная версия Saxon (включающая также исходный код) тоже может использоваться как утилита командной строки:

java com.icl.saxon.stylesheet -о result.xml source.xml stylesheet.xsl

Как и в случае с Xalan, библиотеку saxon.jar придется либо включить в переменную окружения CLASSPATH, либо указывать явным образом

java -cp saxon.jar com.icl.saxon.StyleSheet -o result.xml source.xml stylesheet.xsl

Между тем, Saxon — это далеко не только процессор командной строки. Saxon предоставляет очень мощные возможности для использования в собственных проектах. В частности, Saxon поддерживает TrAX (Transformation API for XML), о котором мы говорили чуть выше, позволяет применять пользовательские парсеры и сериализаторы, предоставляет API для Java и многое другое.

Расширения

Расширения для Saxon могут быть созданы на языке Java в виде функций и элементов. Saxon отличает возможность использования Java-функций расширения, написанных для других Java-процессоров (в частности Xalan и Oracle XSLT Processor).

Для программирования элементов расширения Saxon предоставляет интерфейс com.icl.saxon.style.ExtensionElementFactory, который несколько отличается от подхода, предложенного в Xalan. В Xalan элементу расширения соответствует функция класса, в то время как в Saxon элементу расширения соответствует "фабрика классов", ExtensionElementFactory, возвращающая по данному имени элемента класс-наследник com.icl.saxon.style.StyleElement, соответствующий экземпляру элемента.

Помимо описанных выше возможностей, базовая библиотека функций XPath расширена в Saxon большим количеством функций, облегчающих работу со строками, множествами, датами и так далее. Saxon также включает некоторые из расширений, предложенные инициативой EXSLT.

Библиотека Oracle XDK

Основные характеристики.

□ Платформы: Java, C/C++, PL/SQL.

□ Расширения: поддержка функций расширения.

□ Полнота реализации: сравнительно хорошая (уступает Saxon и MSXML).

□ Разработчик: Oracle Corporation.

□ URL: http://technet.oracle.com/tech/xml/.

Так же как и MSXML, Oracle XDK (от англ. XML Development Kit - комплект для XML-разработки) состоит из нескольких компонентов, предназначенных для разработки XML-приложений на Java, С, С++ и PL/SQL. Библиотека Oracle XDK включает XML-парсер, реализующий DOM и SAX интерфейсы, XSLT-процессор, генератор классов и процессор для XML Schema. Java-версия XDK также включает XSQL-сервлет и утилиту XML SQL (в сокращении — XSU), которые являются основой решений Oracle для обеспечения XML-функциональности в базах данных. XSU предоставляет возможности для экспорта и импорта реляционных данных в виде XML, а сервлет XSQL позволяет использовать возможности XSU в клиент-серверных приложениях (в частности — на Web-серверах). Примечательно, что XSU и XSQL работают не только с базой данных Oracle, но и с любыми другими базами данных, которые поддерживают JDBC-доступ. Oracle XDK разработан под руководством Стива Мюнха (Steve Muench), который также является очень известным специалистом по XML.

Главным образом в Oracle XDK нас интересует библиотека, отвечающая за выполнение XSLT-преобразований — Oracle XSLT Processor. Этот компонент включен во все языковые версии XDK: существует вариант для Java, С, С++ и даже для PL/SQL (что позволяет выполнять преобразования внутри базы данных Oracle).

Относительно проработанности Oracle XSLT Processor можно сказать следующее: XSLT 1.0 поддерживается полностью (или почти полностью), однако периодически попадаются мелкие ошибки, которые оперативно исправляются в следующих релизах. XSLT-процессор играет важную роль в Web-решениях Oracle и потому его поддержке и отладке уделяется большое внимание.

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

Главной областью применения Oracle XSLT Processor является его использование совместно с технологиями XSQL и XSU для обеспечения Web-доступа к реляционным данным. Кроме этого, Oracle XSLT Processor легко интегрируется в другие приложения и также может выполняться из командной строки. Например, в Java-версии Oracle XDK для выполнения преобразования следует запустить команду:

java oracle.xml.parser.v2.oraxsl source.xml stylesheet.xsl result.xml

Если выдается сообщение о ненайденном классе, можно попробовать следующий вариант:

java -cp xmlparserv2.jar oracle.xml.parser.v2.oraxsl source.xml stylesheet.xsl result.xml

Можно также воспользоваться утилитой пакетной обработки oraxsl:

oraxsl source.xml stylesheet.xsl result.xml

Расширения

Java-версия Oracle XSLT Processor может расширяться пользовательскими функциями, написание которых, в принципе, ничем не отличаются от стандартных методов создания Java-функций расширения.

К сожалению, Oracle XSLT Processor не поддерживает пользовательские элементы расширения. Стандартных дополнений базовой библиотеки функций XPath и 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 для командной строки позволяет выполнять преобразования посредством следующей команды:

Перейти на страницу:

Алексей Валиков читать все книги автора по порядку

Алексей Валиков - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Технология XSLT отзывы

Отзывы читателей о книге Технология XSLT, автор: Алексей Валиков. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*