документа;
□ создание и копирование узлов с учетом информации об их типах;
□ создание пространства имен с вычисляемым префиксом и URI.
Приложение 1
Обзор XSLT-процессоров
Здесь даны необходимые сведения по всем существующим XSLT-процессорам, достаточные для того, чтобы сориентировать разработчика и помочь ему выбрать наиболее подходящий инструмент. Перечислим основные факторы, которые мы будем учитывать для каждого из рассматриваемых процессоров:
□ поддерживаемые программные или языковые платформы;
□ поддержка расширений;
□ полнота реализации;
□ популярность;
□ скорость.
Несмотря на то, что XSLT-процессоры являются довольно сложными программами, в подавляющем большинстве они распространяются по бесплатным лицензиям. Как следствие, ценовой показатель не является в данном случае определяющим.
Популярность XSLT-процессоров
Немаловажным фактором при выборе XSLT-процессора является его популярность: ведь чем более распространен процессор, тем больше возможность учитывать опыт предыдущих разработок и тем меньше вероятность найти грабли, на которые до этого еще не наступили другие.
На рис. П1.1 представлены результаты опросов, проведенных нами среди русскоязычных XML- разработчиков. В опросе принимали участие посетители сайта http://www.xmlhack.ru и подписчики конференции fido7.ru.xml. Параметр, приведенный в процентах, показывает, какая часть опрошенных использует этот процессор.
Рис. П1.1. Популярность основных XSLT-процессоров
Как и следовало ожидать, что наиболее популярным XSLT-процессором для решений на платформе Win32 является собственная разработка Microsoft — процессор MSXML. На Java-платформах самым популярным средством является Xalan, который разрабатывался в Apache XML Project.
Производительность XSLT-процессоров
Другим важным параметром, который следует учитывать при выборе процессора, является производительность или скорость выполнения преобразований. От производительности процессора зависит реальность использования XSLT в решениях, требующих быстрого времени реакции (например, на Web- серверах).
Производительность процессоров очень нелегко оценить. Во-первых, дело приходится иметь с различными программными и языковыми платформами, производительность которых различается уже сама по себе. Во-вторых, вследствие применения различных алгоритмов, эффективность процессоров может неодинаково проявляться на различных типах преобразований (например, на преобразовании
Вследствие этого ни одна из оценок производительности не может претендовать на абсолютную достоверность. Впрочем, этого и не требуется — нам важно сориентироваться среди существующих процессоров по скорости, а для этого будет достаточно и приблизительных данных.
С любезного разрешения Кевина Джонса (Kevin Jones) и DataPower, Inc, мы опубликуем результаты двух исследований производительности XSLT-процессоров, основанных на сравнительном анализе времени выполнения контрольного набора примеров. Сами примеры и исходную статистическую информацию можно найти на следующих Web-сайтах:
□ http://www.datapower.com/XSLTMark
□ http://www.tfi-technology.com/xml/xslbench.html
Мы приведем результаты этих исследований, выразив их в процентах (рис. П1.2 и П1.3). Относительную оценку в 100% имеет процессор с наивысшей скоростью, 50% — процессор, который оказался в два раза медленнее и так далее.
Рис. П1.2. Оценка производительности XSLT-процессоров в соответствии с XSLBench
Рис. П1.3. Оценка производительности XSLT-процессоров в соответствии с XSLTMark
К моменту выхода книги в свет эта информация, скорее всего, потеряет свою актуальность — появятся новые процессоры, а старые будут переработаны. Несмотря на это, в глобальной перспективе расстановка сил вряд ли изменится, и поэтому приведенные данные могут быть полезны при выборе процессора и в будущем.
Библиотека Microsoft XML Parser
Основные характеристики. □ Платформы: MS Windows.
□ Расширения: функции расширения на JavaScript и VBScript.
□ Полнота реализации: один из наиболее проработанных процессоров.
□ Разработчик: Microsoft Corporation.
□ URL: http://msdn.microsoft.com/xml.
Продукт, названный Microsoft XML Parser, на самом деле далеко не только парсер. MSXML — это базовый компонент, объединяющий DOM/SAX-парсер, XSLT-процессор и некоторые другие инструменты. Мы будем рассматривать только XSLT-функциональность.
Компания Microsoft начала проявлять интерес к XSLT уже на самых ранних этапах разработки языка - когда он еще не был выделен из родительской технологии XSLT. Прототип процессора, предложенный