Главная » XSLT » Расширение и встраивание XSLT – Введение

0

По-настоящему амбициозные программисты никогда не удовлетворены тем, что им дают, и как одержимые стараются улучшить то, что имеют. Я говорю «ам­бициозные», а не «великие», потому что, на мой взгляд, величие подразумевает понимание того, когда лучше работать в имеющейся системе, а когда ее стоит рас­ширять. Но так или иначе, эта глава посвящена расширению системы как с точки зрения самого языка XSLT, которому бывает нужна функциональность, более удобно реализуемая на других языках, так и с точки зрения других языков, кото­рым бывает необходим XSLT.

Расширение XSLT – это, по определению, механизм на грани спецификации. Расширения делают таблицу стилей менее переносимой. Вы безусловно рискуете, когда используете расширения, предоставляемые конкретным процессором XSLT, или создаете свои собственные. Даже в том случае, когда расширение реа­лизовано на таком переносимом языке, как Java. Наиболее очевидная причина со­стоит в том, что не все процессоры XSLT написаны на Java и вряд ли когда-нибудь станут поддерживать Java-расширения. Но даже если вы готовы примириться с тем, что ваше расширение будет работать только в процессорах, написанных на Java, опасность все равно существует, так как механизм расширения XSLT в вер­сии 1.0 стандартизован не до конца. В версии 1.1 наметился прогресс в этом отно­шении, но эта версия больше не является официальной, и потому многие процес­соры ее не поддерживают. Как ни странно, в версии XSLT 2.0 был сделан шаг назад по сравнению с 1.1, и метод связывания с функциями расширения оставлен неопределенным.

EXSLT.org – это портал, участники которого стремятся установить стандар­ты, которым разработчики процессоров XSLT могли бы следовать при реализа­ции общеупотребительных расширений. В главах 2 и 3 проект EXSLT упоминался в связи с расширениями, касающимися математических функций и функций для работы с датами. Но в нем определены и другие категории расширений, и некото­рые из них будут кратко рассмотрены в данной главе. На этот сайт обязательно стоит заглянуть, прежде чем приступать к разработке собственного расширения. Велика вероятность, что кто-то его уже написал или думал о том, как оно должно работать.

Функции расширения в Saxon

В противоположность расширению XSLT, встраивание подразумевает выпол­нение XSLT-преобразований из других языков без запуска процессора XSLT в от­дельном процессе. Мы покажем, как это можно сделать из программ, написанных на языках Perl и Java.

Работая над этой главой, я очень скоро осознал, что можно было бы посвятить расширению и встраиванию целую книгу, особенно если сравнивать разные реа­лизации, рассматривать разные языки программирования и приводить содержа­тельные примеры. Чтобы не увеличивать размер этой главы до бесконечности, я решил остановиться только на процессорах Xalan-Java 2 и Saxon и ограничиться преимущественно языками Java и JavaScript. Кроме того, мы обсудим компонент MSXML.

Итак, я расскажу лишь о том, как использовать расширения в процессорах Saxon, Xalan-Java 2 и MSXML.

Мангано Сэл  XSLT. Сборник рецептов. – М.: ДМК Пресс, СПБ.: БХВ-Петербург, 2008. – 864 с.: ил.

По теме:

  • Комментарии