следующим образом (часть -о planets.html
задает имя выходного файла):
C:planets>saxon -о planets.html planets.xml planets.xsl
Oracle XSLT
Корпорация Oracle также предоставляет бесплатный процессор XSLT, который можно загрузить с http://technet.oracle.com/tech/xml/, — правда, для этого придется пройти весьма длительную процедуру регистрации. Ко времени написания книги для загрузки процессора XSLT достаточно было щелкнуть на ссылке для XDK для Java http://technet.oracle.com/tech/xml/.
После распаковки архива zip, загруженного с web-узла Oracle, требуемый JAR-файл (на момент написания книги) будет называться xmlparserv2.jar
. Его можно поместить в вашу переменную classpath
в Windows следующим образом:
C:>set classpath=c:oraclexmllibxmlparserv2.jar
Требуемый класс Java — oracle.xml.parser.v2.oraxsl
, для преобразования planets.xml
в planets.html
вы можете использовать его таким образом:
C:planets>java oracle.xml.parser.v2.oraxsl planets.xml planets.xsl planets.html
Xalan
Скорее всего, самый широко используемый отдельный процессор XSLT — это Xalan фирмы Apache Project (Apache — широко распространенный web-сервер). Версию Xalan на Java можно загрузить с http://xml.apache.org/xalan-j/index.html — достаточно щелкнуть на требуемом вам файле архива zip (сейчас это xalan-j_2_0_0.zip
для Windows или xalan-j_2_0_0.tar.gz
для UNIX).
При распаковке загруженного файла вы получите как процессор XSLT, xalan.jar
, так и разборщик XML, xerces.jar
. Оба эти JAR-файла в Windows можно включить в classpath
следующим образом (измените пути к файлам в соответствии с вашей системой):
C:>set classpath=c:xalan-j_2_0_0inxalan.jar;c:xalan-j_2_0_0inxerces.jar
Чтобы затем использовать planets.xsl
для преобразования planets.xml
в planets.html
, запустите на выполнение класс Java org.apache.xalan.xslt.Process
:
C:planets>java org.apache.xalan.xslt.Process -IN planets.xml -XSL planets.xsl -OUT planets.html
Заметьте, что для указания входного файла используется -IN
, для указания выходного — -OUT
, а для указания таблицы стилей XSLT — -XSL
. Чаще всего мы будем работать именно с процессором Xalan, поэтому ниже приведены дополнительные подробности. Следующий список содержит все лексемы, которые можно использовать с классом org.apache.xalan.xslt.Process
, как их выводит сам Xalan:
• -CR
. Использовать в выходных данных только символы возврата каретки (carriage return) — по умолчанию используется CR/LF;
• -DIAG
. Вывод диагностики времени;
• -EDUMP [optional] FileName
. Копировать стек при ошибке;
• -HTML
. Использовать формат HTML;
• -IN inputXMLURL
;
• -INDENT
. Количество пробелов для выравнивания (indent) каждого уровня в выходном дереве — по умолчанию 0;
• -LF
. Использовать в выходных данных только символы перевода строки (linefeed) — по умолчанию используется CR/LF;
• -OUT outputFileName
;
• -PARAM name value
. Устанавливает параметр таблицы стилей;
• -Q
. Режим с минимальным выводом (quiet);
• -QC
. Quiet Pattern Conflicts Warnings, предупреждения конфликтов шаблонов;
• -TEXT
. Использовать средство форматирования простого текста;
• -TG
. Отслеживать (trace) каждое событие генерации результирующего дерева;
• -TS
. Отслеживать каждое событие выделения;
• -ТТ
. Отслеживать шаблоны по мере их вызова;
• -ТТС
. Отслеживать «детей» шаблона по мере их обработки;
• -V
. Информация о версии;
• -VALIDATE
. Проверить входной XML и XSL (по умолчанию проверка отключена);
• -XML
. Использовать средства форматирования XML и добавить заголовок XML;
• -XSL XSLTransformationURL
.
В книге мы рассмотрим все эти процессоры; как уже говорилось, чаше всего я буду использовать Xalan. (Причина в том, что этот процессор стал самым популярным и широко распространенным процессором XSLT.) Разумеется, вы можете использовать любой процессор XSLT, если только он удовлетворяет спецификации XSLT консорциума W3C.
На этом мы завершаем рассмотрение отдельных процессоров XSLT. Существует другой способ преобразовывать документы XML, не прибегая к отдельной программе: для этих целей можно использовать такую клиентскую программу, как браузер.
Преобразование документов XML при помощи браузеров
Поддержка XSLT включена и в Microsoft Internet Explorer, и в Netscape Navigator. Из этих двух браузеров Internet Explorer обладает гораздо большей поддержкой XSLT, и здесь я буду использовать версию 5.5 этого браузера. О поддержке XSLT в Internet Explorer вы можете прочитать по адресу http://msdn.microsoft.com/xml/XSLGuide/.
Internet Explorer 5.5 и ранних версий по умолчанию не поддерживает в точности синтаксис XSLT, поэтому нам нужно провести ряд модификаций в файлах planets.xml
и planets.xsl
. (В следующей главе мы рассмотрим эту тему подробнее. Там приведены адреса, с которых можно загрузить пакеты обновленной поддержки XSLT.) Когда печаталась эта книга появился уже Internet Explorer 6.0. Я установил его и проверил работу; похоже, он поддерживает стандартный синтаксис XSLT (за тем исключением, что все еще требуется использовать тип «text/xsl
» для таблиц стилей — таких как <?xml-stylesheet type='text/xsl' href='planets.xsl'?>
вместо «text/xml
»). Если вы все еще используете IE 5.5 или более ранний, вам нужно будет провести приведенные здесь и в следующей главе изменения. Если вы хотите избежать этого, используйте IE 6.0: кажется, этот браузер поддерживает полный синтаксис XSLT.
Для работы с planets.xml
в IE (в том числе и версии 6.0) мне пришлось преобразовать атрибут type
в инструкции обработки <?xml-stylesheet?>
из «text/xml
» в «text/xsl
» (предполагается, что файл planets.xsl
расположен в том же каталоге, что и planets.xml
, как указывает атрибут href
в листинге 1.3).