Xslt процессор что это
Как вы видели на протяжении всей книги, при работе с XSLT вам не требовалось никакого программирования. Но все процессоры XSLT, с которыми мы работали до сих пор, — Xalan, Saxon, XT, Oracle и MSXML — разработаны так, что при желании к ним можно обращаться и из кода программы. Здесь мы рассмотрим, как работать с этими процессорами в прикладной программе. Можете спокойно пропустить эту главу, если вы не программист или не собираетесь им становиться. Но если вы не будете использовать возможности программного интерфейса, вы потеряете довольно много, в том числе поддержку XSLT на web-серверах. В этой главе будет также показано, как преобразовывать XML в реляционную базу данных.
Для взаимодействия с различными прикладными программными интерфейсами (API, Application Programming Interface) процессоров XSLT я буду применять Java и JavaScript. С различными процессорами XSLT можно работать и при помощи таких языков, как С++ или Visual Basic, но до сих пор подавляющее большинство программистов выбирало Java, а язык JavaScript удобен для обработки преобразований в Internet Explorer. Кроме того, используемые вами процессоры XSLT специально разработаны для взаимодействия с Java, хотя с процессором MSXML3 можно работать из программы как с СОМ-объектом. Как я говорил, с процессором MSXML в Internet Explorer можно работать при помощи JavaScript, такой пример был показан еще в главе 1. И, как я обещал в главе 1, здесь я рассмотрю его более подробно.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ДЛЯ РАБОТЫ С XSLT ИЗМЕНЯЕТСЯ ОЧЕНЬ БЫСТРО!
Будьте внимательны! Программное обеспечение для работы с XSLT изменяется очень быстро, зачастую ежемесячно, поэтому ко времени, когда вы будете читать книгу, оно частично может уже устареть. Тут уж ничего не поделаешь, и вам нужно за ним следить. Все примеры в этой главе были тщательно проверены по крайней мере тремя людьми — мной и двумя техническими редакторами, работавшими независимо, и на момент написания книги все примеры работали. Если у вас что-то не заработает, проверьте, конечно, такие элементы, как путь к классам Java, но также сверьтесь и с документацией по вашему процессору XSLT на предмет возможных изменений.
Здесь даны необходимые сведения по всем существующим XSLT-процессорам, достаточные для того, чтобы сориентировать разработчика и помочь ему выбрать наиболее подходящий инструмент. Перечислим основные факторы, которые мы будем учитывать для каждого из рассматриваемых процессоров:
? поддерживаемые программные или языковые платформы;
Несмотря на то, что XSLT-процессоры являются довольно сложными программами, в подавляющем большинстве они распространяются по бесплатным лицензиям. Как следствие, ценовой показатель не является в данном случае определяющим.
Использование отдельных процессоров XSLT
Использование отдельных процессоров XSLT Отдельные процессоры XSLT — один из самых распространенных способов провести XSLT-преобразования. Существует весьма много таких процессоров, хотя и не все из них могут обрабатывать все возможные таблицы стилей XSLT. Для того, чтобы
Глава 10 Работа с API процессоров XSLT
Глава 10 Работа с API процессоров XSLT Как вы видели на протяжении всей книги, при работе с XSLT вам не требовалось никакого программирования. Но все процессоры XSLT, с которыми мы работали до сих пор, — Xalan, Saxon, XT, Oracle и MSXML — разработаны так, что при желании к ним можно обращаться и
Вызов Java непосредственно из процессоров XSLT
Вызов Java непосредственно из процессоров XSLT Как мы говорили в главе 5, до недавнего времени процессоры XSLT могли реализовывать функции расширения любым способом, и один из этих способов включал прямой вызов функций Java. Например, в Saxon и Xalan можно выполнять код Java, если
Приложение A DTD XSLT
Приложение 2 МЕЖДУНАРОДНЫЙ ОПРОС 2003 ГОДА ПО ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ. ОБЗОР РЕЗУЛЬТАТОВ ПО СТРАНАМ СНГ
Приложение 1. Обзор XSLT-процессоров
Приложение 1. Обзор XSLT-процессоров В первом приложении произведен обзор наиболее распространенных XSLT- процессоров с тем, чтобы помочь читателю выбрать наиболее подходящий инструмент. Помимо этого, в начале приложения приводятся статистические сведения о
Приложение 2. Краткий справочник элементов и атрибутов XSLT
Приложение 2. Краткий справочник элементов и атрибутов XSLT Второе приложение содержит справочную информацию об элементах и атрибутах языка XSLT. В одну таблицу сведены синтаксис элементов и атрибутов и краткое описание их
Приложение 3. Краткий справочник функций XSLT и XPath
Приложение 3. Краткий справочник функций XSLT и XPath Третье приложение содержит справочную информацию о функциях базовой библиотеки языка XPath и функциях языка XSLT, которые дополняют эту
Приложение 4. Интернет-ресурсы, посвященные XSLT
Приложение 4. Интернет-ресурсы, посвященные XSLT В четвертом приложении приведен небольшой список полезных интернет-ресурсов, так или иначе связанных с XSLT. Сюда относятся списки часто задаваемых вопросов, уроки по XSLT, архивы библиотек и инструментов, официальные
Отличия XSLT 1.1 от XSLT 1.0
Отличия XSLT 1.1 от XSLT 1.0 Отсутствие result tree fragment Главное и наиболее существенное отличие XSLT 1.1 от XSLT 1.0 состоит в том, что тип данных, известный в XSLT 1.0 как result tree fragment (результирующий фрагмент дерева) в XSLT 1.1. отсутствует. Вместо него в версии 1.1 используется множество узлов,
Популярность XSLT-процессоров
Популярность XSLT-процессоров Немаловажным фактором при выборе XSLT-процессора является его популярность: ведь чем более распространен процессор, тем больше возможность учитывать опыт предыдущих разработок и тем меньше вероятность найти грабли, на которые до этого еще не
Производительность XSLT-процессоров
Производительность XSLT-процессоров Другим важным параметром, который следует учитывать при выборе процессора, является производительность или скорость выполнения преобразований. От производительности процессора зависит реальность использования XSLT в решениях,
Приложение 2 Краткий справочник элементов и атрибутов XSLT
Приложение 2 Краткий справочник элементов и атрибутов XSLT Обозначения Ниже перечислены обозначения, используемые в данной книге.? attributeОбязательный атрибут.? attributeНеобязательный атрибут.? attribute="строка"Атрибут со строковым параметром.? attribute=""Атрибут со
Приложение 3 Краткий справочник функций XSLT и XPath
Приложение 3 Краткий справочник функций XSLT и XPath Обозначения Прототип функции имеет следующий синтаксис:тип1 функция(тип2, тип3, тип4?)Здесь тип1 — тип возвращаемого значения, тип2, тип3, тип4 — типы передаваемых параметров.При этом символ "?" обозначает аргумент, который
Отдельные процессоры XSLT — один из самых распространенных способов провести XSLT-преобразования. Существует весьма много таких процессоров, хотя и не все из них могут обрабатывать все возможные таблицы стилей XSLT. Для того, чтобы использовать процессор XSLT, достаточно запустить его из командной строки (в окне DOS в Windows), задать имя исходного документа XML, имя используемой таблицы стилей и имя документа, который вы хотите создать.
Ниже приведен список некоторых доступных в Интернете процессоров XSLT в алфавитном порядке — большинство (но не все) из них бесплатны:
В следующих разделах мы подробно рассмотрим четыре из вышеперечисленных процессоров XSLT: XT, Saxon, XSLT-процессор фирмы Oracle и Xalan. Все они бесплатно доступны в Интернете, и на них можно проверить все приведенные в книге примеры. Если вы хотите изучать примеры, загрузите один из этих процессоров (лучше всего известный и широко используемый — процессор Xalan). Для осуществления XSLT-преобразований я буду пользоваться этими процессорами при дальнейшем изложении.
Хотя для запуска этих XSLT-процессоров нужна Java, не стоит беспокоиться, если вы не программист — никакого программирования не требуется. В главе 10 будут приведены примеры программирования на Java — для того чтобы продемонстрировать вам, как создавать XSLT-преобразования в коде — но процессоры XT, Saxon, XSLT от Oracle и Xalan можно запускать из командной строки.
Если вы работаете в Windows, то для вас существует еще более простой способ использовать XT и Saxon — эти процессоры поставляются в виде файлов .ехе (xt.exe и saxon.exe), которые можно выполнять непосредственно в Windows — и вам совсем не понадобится Java. Этот способ работы также рассмотрен в книге.
Использование процессора XSLT на Java
Использование процессора XSLT на Java Для работы с основанным на Java процессором XSLT достаточно загрузить и распаковать (unzip) его — и он готов к работе. Прочитайте, конечно, сопроводительные указания; но, как правило, нужно осуществить только два шага.Во-первых, необходимо
Глава 10 Работа с API процессоров XSLT
Глава 10 Работа с API процессоров XSLT Как вы видели на протяжении всей книги, при работе с XSLT вам не требовалось никакого программирования. Но все процессоры XSLT, с которыми мы работали до сих пор, — Xalan, Saxon, XT, Oracle и MSXML — разработаны так, что при желании к ним можно обращаться и
Вызов Java непосредственно из процессоров XSLT
Вызов Java непосредственно из процессоров XSLT Как мы говорили в главе 5, до недавнего времени процессоры XSLT могли реализовывать функции расширения любым способом, и один из этих способов включал прямой вызов функций Java. Например, в Saxon и Xalan можно выполнять код Java, если
Проводник как два отдельных процесса
Проводник как два отдельных процесса Как известно, Проводник выступает и в качестве оболочки Windows, и в качестве файл-менеджера. И хотя это повышает удобство, на использовании памяти это сказывается отнюдь не лучшим образом. При нормальных условиях Проводник отнимает
18.3.2. Открытие отдельных членов
18.3.2. Открытие отдельных членов Когда мы применили закрытое наследование класса PeekbackStack от IntArray, то все защищенные и открытые члены IntArray стали закрытыми членами PeekbackStack. Было бы полезно, если бы пользователи PeekbackStack могли узнать размер стека с помощью такой
Глава 5 Использование процессоров
Глава 5 Использование процессоров Введение в процессорыСоздание предварительных установок процессоровОписание основных процессоровВ предыдущих главах было рассмотрено редактирование звуковых данных. В состав Sound Forge 9.0 помимо базового набора действий редактирования
Глава 9. Использование XSLT совместно с другими языками программирования
Глава 9. Использование XSLT совместно с другими языками программирования Эта глава поможет сделать первые шаги разработчикам, которым необходимо использовать XSLT совместно с другими языками программирования. В ней приведены простые примеры вызова преобразований из
Приложение 1. Обзор XSLT-процессоров
Приложение 1. Обзор XSLT-процессоров В первом приложении произведен обзор наиболее распространенных XSLT- процессоров с тем, чтобы помочь читателю выбрать наиболее подходящий инструмент. Помимо этого, в начале приложения приводятся статистические сведения о
Глава 9 Совместное использование XSLT с другими языками программирования
Глава 9 Совместное использование XSLT с другими языками программирования XSLT и другие языки Несмотря на то, что XSLT является вполне самостоятельным языком, его очень часто используют как составную часть в проектах, которые пишутся на других языках программирования. Тому
Отличия XSLT 1.1 от XSLT 1.0
Отличия XSLT 1.1 от XSLT 1.0 Отсутствие result tree fragment Главное и наиболее существенное отличие XSLT 1.1 от XSLT 1.0 состоит в том, что тип данных, известный в XSLT 1.0 как result tree fragment (результирующий фрагмент дерева) в XSLT 1.1. отсутствует. Вместо него в версии 1.1 используется множество узлов,
Отличия XSLT 2.0 от XSLT 1.1
Отличия XSLT 2.0 от XSLT 1.1 Прежде чем приступить к описанию отличий второй версии XSLT от версии 1.1 (и, соответственно, 1.0), следует сделать одно существенное замечание. Лицензионные соглашения Консорциума W3 не позволяют раскрывать широкой общественности внутренние материалы
Приложение 1 Обзор XSLT-процессоров
Приложение 1 Обзор XSLT-процессоров Здесь даны необходимые сведения по всем существующим XSLT-процессорам, достаточные для того, чтобы сориентировать разработчика и помочь ему выбрать наиболее подходящий инструмент. Перечислим основные факторы, которые мы будем учитывать
Популярность XSLT-процессоров
Популярность XSLT-процессоров Немаловажным фактором при выборе XSLT-процессора является его популярность: ведь чем более распространен процессор, тем больше возможность учитывать опыт предыдущих разработок и тем меньше вероятность найти грабли, на которые до этого еще не
Производительность XSLT-процессоров
Производительность XSLT-процессоров Другим важным параметром, который следует учитывать при выборе процессора, является производительность или скорость выполнения преобразований. От производительности процессора зависит реальность использования XSLT в решениях,
11.4.2. Вырезание отдельных символов
11.4.2. Вырезание отдельных символов Опция -c позволяет указывать, какие конкретно символы необходимо извлекать из каждой строки входного потока. Применять эту опцию следует в том случае, если вы имеете дело со строками фиксированной длиныРассмотрим такой пример. Когда в
Съемка отдельных предметов
Съемка отдельных предметов Все объекты по форме можно условно вписать в определенные геометрические фигуры: куб, сферу, конус или плоскость, – что определяет подход к съемке этих предметов.Объекты кубической формы хорошо снимать, используя три источника света. Подбирая
Здесь даны необходимые сведения по всем существующим XSLT-процессорам, достаточные для того, чтобы сориентировать разработчика и помочь ему выбрать наиболее подходящий инструмент. Перечислим основные факторы, которые мы будем учитывать для каждого из рассматриваемых процессоров:
? поддерживаемые программные или языковые платформы;
Несмотря на то, что XSLT-процессоры являются довольно сложными программами, в подавляющем большинстве они распространяются по бесплатным лицензиям. Как следствие, ценовой показатель не является в данном случае определяющим.
Использование отдельных процессоров XSLT
Использование отдельных процессоров XSLT Отдельные процессоры XSLT — один из самых распространенных способов провести XSLT-преобразования. Существует весьма много таких процессоров, хотя и не все из них могут обрабатывать все возможные таблицы стилей XSLT. Для того, чтобы
Глава 10 Работа с API процессоров XSLT
Глава 10 Работа с API процессоров XSLT Как вы видели на протяжении всей книги, при работе с XSLT вам не требовалось никакого программирования. Но все процессоры XSLT, с которыми мы работали до сих пор, — Xalan, Saxon, XT, Oracle и MSXML — разработаны так, что при желании к ним можно обращаться и
Вызов Java непосредственно из процессоров XSLT
Вызов Java непосредственно из процессоров XSLT Как мы говорили в главе 5, до недавнего времени процессоры XSLT могли реализовывать функции расширения любым способом, и один из этих способов включал прямой вызов функций Java. Например, в Saxon и Xalan можно выполнять код Java, если
Приложение A DTD XSLT
Приложение 2 МЕЖДУНАРОДНЫЙ ОПРОС 2003 ГОДА ПО ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ. ОБЗОР РЕЗУЛЬТАТОВ ПО СТРАНАМ СНГ
Приложение 1. Обзор XSLT-процессоров
Приложение 1. Обзор XSLT-процессоров В первом приложении произведен обзор наиболее распространенных XSLT- процессоров с тем, чтобы помочь читателю выбрать наиболее подходящий инструмент. Помимо этого, в начале приложения приводятся статистические сведения о
Приложение 2. Краткий справочник элементов и атрибутов XSLT
Приложение 2. Краткий справочник элементов и атрибутов XSLT Второе приложение содержит справочную информацию об элементах и атрибутах языка XSLT. В одну таблицу сведены синтаксис элементов и атрибутов и краткое описание их
Приложение 3. Краткий справочник функций XSLT и XPath
Приложение 3. Краткий справочник функций XSLT и XPath Третье приложение содержит справочную информацию о функциях базовой библиотеки языка XPath и функциях языка XSLT, которые дополняют эту
Приложение 4. Интернет-ресурсы, посвященные XSLT
Приложение 4. Интернет-ресурсы, посвященные XSLT В четвертом приложении приведен небольшой список полезных интернет-ресурсов, так или иначе связанных с XSLT. Сюда относятся списки часто задаваемых вопросов, уроки по XSLT, архивы библиотек и инструментов, официальные
Отличия XSLT 1.1 от XSLT 1.0
Отличия XSLT 1.1 от XSLT 1.0 Отсутствие result tree fragment Главное и наиболее существенное отличие XSLT 1.1 от XSLT 1.0 состоит в том, что тип данных, известный в XSLT 1.0 как result tree fragment (результирующий фрагмент дерева) в XSLT 1.1. отсутствует. Вместо него в версии 1.1 используется множество узлов,
Популярность XSLT-процессоров
Популярность XSLT-процессоров Немаловажным фактором при выборе XSLT-процессора является его популярность: ведь чем более распространен процессор, тем больше возможность учитывать опыт предыдущих разработок и тем меньше вероятность найти грабли, на которые до этого еще не
Производительность XSLT-процессоров
Производительность XSLT-процессоров Другим важным параметром, который следует учитывать при выборе процессора, является производительность или скорость выполнения преобразований. От производительности процессора зависит реальность использования XSLT в решениях,
Приложение 2 Краткий справочник элементов и атрибутов XSLT
Приложение 2 Краткий справочник элементов и атрибутов XSLT Обозначения Ниже перечислены обозначения, используемые в данной книге.? attributeОбязательный атрибут.? attributeНеобязательный атрибут.? attribute="строка"Атрибут со строковым параметром.? attribute=""Атрибут со
Приложение 3 Краткий справочник функций XSLT и XPath
Приложение 3 Краткий справочник функций XSLT и XPath Обозначения Прототип функции имеет следующий синтаксис:тип1 функция(тип2, тип3, тип4?)Здесь тип1 — тип возвращаемого значения, тип2, тип3, тип4 — типы передаваемых параметров.При этом символ "?" обозначает аргумент, который
Здесь даны необходимые сведения по всем существующим XSLT-процессорам, достаточные для того, чтобы сориентировать разработчика и помочь ему выбрать наиболее подходящий инструмент. Перечислим основные факторы, которые мы будем учитывать для каждого из рассматриваемых процессоров:
□ поддерживаемые программные или языковые платформы;
Несмотря на то, что XSLT-процессоры являются довольно сложными программами, в подавляющем большинстве они распространяются по бесплатным лицензиям. Как следствие, ценовой показатель не является в данном случае определяющим.
Немаловажным фактором при выборе XSLT-процессора является его популярность: ведь чем более распространен процессор, тем больше возможность учитывать опыт предыдущих разработок и тем меньше вероятность найти грабли, на которые до этого еще не наступили другие.
Как и следовало ожидать, что наиболее популярным XSLT-процессором для решений на платформе Win32 является собственная разработка Microsoft — процессор MSXML. На Java-платформах самым популярным средством является Xalan, который разрабатывался в Apache XML Project.
Другим важным параметром, который следует учитывать при выборе процессора, является производительность или скорость выполнения преобразований. От производительности процессора зависит реальность использования XSLT в решениях, требующих быстрого времени реакции (например, на Web-серверах).
Производительность процессоров очень нелегко оценить. Во-первых, дело приходится иметь с различными программными и языковыми платформами, производительность которых различается уже сама по себе. Во-вторых, вследствие применения различных алгоритмов, эффективность процессоров может неодинаково проявляться на различных типах преобразований (например, на преобразовании А процессор I может быть быстрее процессора II, а на преобразовании В — медленнее). В-третьих, не все процессоры полностью и правильно реализуют возможности XSLT, то есть далеко не все преобразования будут выполняться на всех процессорах одинаково. Наконец, из всего времени обработки сложно выделить время, потраченное собственно на преобразование (а не на разбор и сериализацию XML).
Вследствие этого ни одна из оценок производительности не может претендовать на абсолютную достоверность. Впрочем, этого и не требуется — нам важно сориентироваться среди существующих процессоров по скорости, а для этого будет достаточно и приблизительных данных.
С любезного разрешения Кевина Джонса (Kevin Jones) и DataPower, Inc, мы опубликуем результаты двух исследований производительности XSLT-процессоров, основанных на сравнительном анализе времени выполнения контрольного набора примеров. Сами примеры и исходную статистическую информацию можно найти на следующих Web-сайтах:
Мы приведем результаты этих исследований, выразив их в процентах (рис. П1.2 и П1.3). Относительную оценку в 100% имеет процессор с наивысшей скоростью, 50% — процессор, который оказался в два раза медленнее и так далее.
Рис. П1.2. Оценка производительности XSLT-процессоров в соответствии с XSLBench
К моменту выхода книги в свет эта информация, скорее всего, потеряет свою актуальность — появятся новые процессоры, а старые будут переработаны. Несмотря на это, в глобальной перспективе расстановка сил вряд ли изменится, и поэтому приведенные данные могут быть полезны при выборе процессора и в будущем.
Библиотека Microsoft XML Parser
Основные характеристики. □ Платформы: MS Windows.
□ Расширения: функции расширения на JavaScript и VBScript.
□ Полнота реализации: один из наиболее проработанных процессоров.
□ Разработчик: Microsoft Corporation.
Продукт, названный Microsoft XML Parser, на самом деле далеко не только парсер. MSXML — это базовый компонент, объединяющий DOM/SAX-парсер, XSLT-процессор и некоторые другие инструменты. Мы будем рассматривать только XSLT-функциональность.
Компания Microsoft начала проявлять интерес к XSLT уже на самых ранних этапах разработки языка - когда он еще не был выделен из родительской технологии XSLT. Прототип процессора, предложенный Microsoft, был одной из первых рабочих реализаций XSLT. К сожалению, в этом прототипе был реализован ранний диалект языка, не совместимый со стандартной версией XSLT. Он получил большое распространение вместе с браузерами Internet Explorer 4.0, 5.0 и 5.5, и, как результат, множество программистов и по сей день работают с нестандартной версией XSLT, которая описывается пространством имен "http://www.w3.org/TR/WD-xsl". Поддержка стандартного XSLT была реализована в версии MSXML 3.0, которая вышла в марте 2000 года (более полная, production-версия появилась чуть позже, осенью).
Ранний вариант XSLT, реализованный в MSXML 2.0 и ниже, имеет схожие с XSLT 1.0 принципы, но также и целый ряд несовместимых отличий. Следует скорее сказать, что WD-xsl — это другой язык и программировать на нем тоже следует по-другому. Для того чтобы использовать стандартный XSLT в MSXML, следует обновить этот компонент, загрузив новую версию с Web-сайта Microsoft. Однако, и это еще не все. Дело в том, что Microsoft не отказалась от старой нестандартной версии и MSXML 3.0 поддерживает ее наравне с XSLT 1.0. Более того, по умолчанию, MSXML устанавливается в так называемом side-by-side режиме (англ. side-by-side - бок о бок). Это означает, что вновь установленный компонент не замещает предыдущую версию полностью. Поэтому устанавливать MSXML следует в режиме замены — по окончанию установки следует воспользоваться утилитой xmlinst.exe, также доступной с Web-сайта Microsoft для того, чтобы полностью заменить старую версию.
Типичными симптомами не до конца обновленной версии MSXML является следующее:
□ при попытке выполнить корректные преобразования, определенные в пространстве имен с URI "http://www.w3.org/1999/XSL/Transform", не происходит ничего или выдается ошибка;
□ при попытке выполнить те же преобразования, исправив URI на "http://www.w3.org/TR/WD-xsl", процессор пытается выполнить преобразование, но выдает ошибку о некорректности преобразования (в то время как оно работает на других процессорах);
□ в преобразованиях не работают переменные, именованные шаблоны, шаблоны значений атрибутов, ключи и импортирование.
В случае обнаружения подобных признаков единственным советом является обновление версии MSXML в режиме замены.
Перед установкой MSXML3 рекомендуется внимательно ознакомиться с документацией на предмет возможности установки в режиме замены. Некоторые программные продукты (такие, как SQL Server и Biztalk Server) используют старую версию XSLT-процессора, и обновление в режиме замены приведет к нестабильности их работы.
Читайте также: