XSLT — страница 8 из 124

>



Я преобразую

planets.xml
в допустимый документ XHTML,
planets.html
, используя этот новый вариант
planets.xsl
и процессор XSLT XT. Сначала нужно корректно установить переменную
classpath
:

С:\>set classpath=c:xerces\xerces-1_3_0\xerces.jar;с:\xt\xt.jar;

Затем я провожу преобразование:

C:\planets>java -Dcom.jclark.xsl.sax.parser=org.apache.xerces.parsers.SAXParser.com.jclark xsl.sax.Driver planets.xml planets.xsl planets.html

В результате будет получен файл XHTML,

planets.html
:

 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

</code></pre></p><p><pre><code>   The Planets Table</code></pre></p><p><pre><code>

   The Planets Table

NameMassRadiusDay
Mercury.0553 (Earth =  1)1516 miles58.65 days
Venus.815 (Earth = 1)3716 miles116.75 days
Earth1 (Earth = 1)2107 miles1 days

Этот документ,

planets.html
, действительно является хорошо сформированным и допустимым документом формата XHTML 1.0 (самый популярный вид XHTML) в соответствии с программой проверки допустимости HTML и XHTML консорциума W3C. Средство проверки HTML/XHTML можно найти в Интернете по адресу http://validator.w3.org/file-upload.html. В главе 6 представлена дополнительная информация о преобразованиях XML-XHTML.

К настоящему моменту мы провели обзор работы XSLT, рассмотрев преобразования из XML в HTML, XML и XHTML. Далее в книге мы познакомимся с такими преобразованиями XSLT, как преобразования из XML в RTF (форматированный текст, Rich Text Format), в простой текст, XSL-FO, JavaScript, в базы данных на основе SQL, а также и другие. Кроме того, существует много дополнительного материала по XSLT, о котором вам следует знать, и теперь мы освоимся в разнообразных видах ресурсов XSLT, которые можно найти в Интернете.

Ресурсы XSLT

В Интернете можно найти огромное количество нужных нам сведений. Имейте в виду, что все приведенные далее адреса URL легко могут измениться; списки будут актуальны столь долго, сколько этого будут хотеть люди, занимающиеся поддержкой перечисленных web-узлов.

Спецификации, руководства и примеры XSLT

Точкой отсчета для ресурсов XSLT, безусловно, является сам W3C. Ниже приведены адреса URL для используемых в книге спецификаций W3C:

• www.w3.org/Style/XSL/. Основная страница W3C по XSL;

• www.w3.org/TR/xslt. Спецификация XSLT 1.0;

• www.w3.org/TR/xslt11. Рабочий проект XSLT 1.1, упрощающий работу с расширениями XSLT и добавляющий поддержку рекомендации W3C XBase;

• www.w3.org/TR/xslt20req. Требования XSLT 2.0, в которых приводится обзор XSLT 2.0, включающий дополнительную поддержку схем XML;

• www.w3.org/TR/xsl/. Форматирующие объекты XSL;

• www.w3.org/Style/2000/xsl-charter.html. Цели комитета XSL;

• www.w3.org/TR/xpath. Рекомендация XPath 1.0,

• www.w3.org/TR/xpath20req. Требования XPath, в которых приводится обзор XPath 2.0, включающего дополнительную поддержку XSLT 2.0;

• http://lists.w3.org/Archives/Public/www-xml-stylesheet-comments/. Список таблиц стилей XML консорциума W3C.

Многие руководства по XSLT и примеры доступны также и из других источников — вот начальный список:

• http://http.cs.berkeley.edu/~wilensky/CS294/xsl-examples.html. Ряд примеров по XSLT;

• http://msdn.microsoft.com/xml/reference/xsl/Examples.asp. Примеры шаблонов XSLT, используемых в совпадающих элементах;

• http://msdn.microsoft.com/xml/XSLGuide/xsl-overview.asp. Начальное описание работы с XSLT;

• www.lists.ic.ac.uk/hypermail/xml-dev/xml-dev-Nov-1999/0371.html. Руководство по XSLT в виде презентации PowerPoint;

• www.mulberrytech.com/xsl/xsl-list/. Открытый список, посвященный обсуждению XSL;

• www.nwalsh.com/docs/tutorials/xsl/xsl/slides.html. Руководство по XSLT;

• www.oasis-open.org/cover/xsl.html. Описание текущих событий вокруг XSLT;

• www.w3.org/Style/Activity. Внушительный список страниц, посвященных таблицам стилей W3C;

• www.xml101.com/xsl/. Полноценный набор справочников по XSLT;

• www.xslinfo.com. Полезный набор ресурсов по XSLT, собранных Джеймсом Таубером (James Tauber);

• www.zvon.org/xxl/XSLTutorial/Books/Bookl/bookInOne.html. Справочники по XSLT, XPath, XML, WML и другим языкам.

Мне известна однако только одна группа новостей Usenet по XSLT, и она поддерживается Microsoft — microsoft.public.xsl. Со временем появятся и другие. Для вас может также представлять интерес список почтовой рассылки по XSL — www.mulberrytech.com/xsl/xsl-list.

Помимо спецификаций, руководств и примеров W3C, в Интернете можно найти большое число редакторов создания таблиц стилей XSLT.

Редакторы XSLT

Для создания используемых в книге документов XML и XSL достаточно обычного текстового редактора, такого как vi, emacs, pico, Windows Notepad или Windows WordPad. По умолчанию предполагается, что документы XML и XSL должны быть написаны в Unicode, хотя на практике их можно создавать и в ASCII, и практически все документы до сих пор были написаны именно в ASCII. Следите только за тем, чтобы при создании документа сохранять его в формате простого текста вашего редактора.

РАБОТА С WORDPAD

У текстовых редакторов Windows, таких как WordPad, есть раздражающая особенность — если они не узнают данное вами файлу расширение, они добавляют к имени файла расширение .txt. Для файлов .xml и .xsl это не проблема, поскольку WordPad понимает эти расширения, но если вы попытаетесь сохранить документы, созданные при работе над книгой, с расширением, не распознаваемым WordPad, ко всем ним редактор добавит расширение .txt. Чтобы этого не происходило, при сохранении документа заключайте имя файла в кавычки: "file.abc".

Будет, однако, намного проще использовать настоящий редактор XML, специально предназначенный для обработки XML-документов. Вот список программ редактирования документов XML:

Adobe FrameMaker, www.adobe.com. Adobe представляет прекрасный, но дорогой редактор FrameMaker с поддержкой XML;

XML Pro, www.vervet.com/. Дорогой, но мощный редактор XML;

XML Writer, на диске, XMLWriter http://xmlwriter.net/. Выделение ключевых слов цветом, удобный интерфейс;

XML Notepad, msdn.microsoft.com/xml/notepad/intro.asp. Бесплатный редактор XML от Microsoft, немного неудобный в работе;

eNotepad, www.edisys.com/Products/eNotepad/enotepad.asp. Аналог WordPad, имеющий хорошие средства работы с XML и удобный пользовательский интерфейс;

XMetal from SoftQuad, www.xmetal.com. Дорогой, но очень мощный редактор XML, любимый редактор многих авторов;

XML Spy, www.xmlspy.com/. Имеет хороший пользовательский интерфейс и прост в работе;

Arbortext's Epic, www.arbortext.com/. Мощный редактор, дорогой, обладает богатыми возможностями настройки.

Редактор XML Spy изображен на рис. 1.5, XML Writer — на рис. 1.6, a XML Notepad — на рис. 1.7.

Рис. 1.5. Редактирование XML в XML Spy 


Рис. 1.6. Редактирование XML в XML Writer


Рис. 1.7. Редактирование XML в XML Notepad


Существуют и специальные редакторы XSLT. Вот начальный список:

• http://lists.w3.org/Archives/Public/xsl-editors/. Список обсуждения редакторов XSL на web-узле W3C;

• IBM XSL Editor, www.alphaworks.ibm.com/tech/xsleditor. Редактор таблиц стилей XSLT на Java, обладающий визуальным интерфейсом для написания таблиц стилей и выражений выбора и совпадения. Однако необходимо, чтобы была установлена поддержка Java 2 version 1.1 (не 1.2 или 1.3);

Stylus, www.exceloncorp.com/products/excelon_stylus.html. Stylus включает редактор таблиц стилей XSLT;

Visual XML Transformation Tool, www.alphaworks.ibm.com/aw.nsf/techmain/visualxmltools. Visual XML Transformation Tool генерирует для вас XSLT для преобразования исходных документов в результирующие;

Whitehill Composer, www.whitehill.com/products/prod4.html. WYSIWYG средство генерации таблиц стилей XSLT с поддержкой перетаскивания;

XL-Styler, www.seeburger.de/xml. Включает выделение ключевых слов, завершение тегов, предварительный просмотр HTML и многое другое;

XML Cooktop, http://xmleverywhere.com/cooktop/. Этот редактор только что выпущен и выглядит прилично. Включены средства разработки и проверки таблиц стилей XSLT;

XML Spy, www.xmlspy.com/. При помощи этого редактора XML можно также редактировать XSLT;

• XML Style Wizard, www.infoteria.com/en/contents/download. Средство генерации файлов XSLT при помощи мастера, который изучает данные XML и задает вопросы пользователю;

xslide, www.mulberrytech.com/xsl/xslide. Поддерживает режим редактирования XSLT для Emacs;

XSpLit, www.percussion.com/xmlzone/technology.htm. Позволяет вам разделять документы HTML на определения DTD XML и таблицы стилей XSLT.

Утилиты XSLT

В Интернете существует также много утилит XSLT — в следующем списке перечислены наиболее известные:

Microsoft XSL API Extension, http://msdn.microsoft.com/downloads/webtechnology/xml/xslisapi.asp. Упрощает задачу выполнения XSLT-преобразований на стороне сервера;

• Microsoft XSL-to-XSLT Converter, http://msdn.microsoft.com/downloads/webtechnology/xml/xsltconv.asp. Преобразует XSL в XSLT;

XSL Lint, www.nwalsh.com/xsl/xslint. XSL Lint осуществляет проверку синтаксиса XSLT, позволяя обнаружить ошибки многих типов;

XSL Trace, www.alphaworks.ibm.com/tech/xsltrace. Этот продукт позволяет пользователю проходить по шагам XSLT визуально;

• XSLT Compiler, www.sun.com/xml/developers/xsltc. Преобразует файлы XSLT в классы Java для преобразования файлов XML;

• XSLT test tool, www.netcrucible.com/xslt/xslt-tool.htm. Этот инструмент дает возможность запускать XSLT в различных популярных процессорах, что позволяет проверить, корректно ли ваше преобразование работает на всех системах. Существует возможность вызывать из командной строки MSXML3 от Microsoft, как и любой другой процессор XSLT;

XSLTC, www3.cybercities.com/x/xsltc. Компилирует таблицы стилей XSLT в код на С++. Основан на Transformix, процессоре XSLT фирмы Mozilla;

• XSLTracer, www.zvon.org/xxl/XSLTracer/Output/introduction.html. XSLTracer — средство на языке Perl, демонстрирующее процесс обработки файлов XML при помощи таблиц стилей XSLT.

На этом завершается обзор XSLT в данной главе. Как видите, нас ждет огромный набор сведений. В оставшейся части главы будет представлен обзор XSL-FO.

Форматирующие объекты XSL: XSL-FO