Читаем XSLT онлайн бесплатно


XSLT

Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету. Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике

Стивен Холзнер

Компьютеры и Интернет / Программирование, программы, базы данных / Интернет / Программирование / Книги по IT
<p><emphasis>Стивен Холзнер</emphasis></p><p>XSLT</p><p>Библиотека программиста </p><p>Об авторе</p>

Стивен Холзнер (Steven Holzner) — широко известный автор, пишущий на темы XML, в том числе и XSLT, с момента появления этих технологий. Его перу принадлежат 67 книг по программированию; всего их было продано более миллиона экземпляров. Эти книги переведены на 16 языков мира, среди них немало бестселлеров. Стивен ранее работал редактором журнала PC Magazine; он окончил Массачусетский технологический институт (MIT) и получил степень доктора философии (Ph.D.) в институте Корнелла (Cornell), работал на факультетах Массачусетского технологического института и института Корнелла, а в настоящее время ведет семинары на предприятиях по всей стране.

<p>О технических редакторах</p>

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

Джейсон А. Басс (Jason A. Buss) — программист-аналитик, разработчик собственных программных решений для лидирующего производителя авиационного оборудования на Среднем Западе. Он женат, у него четверо детей. В свободное время любит играть с детьми, модернизировать домашний компьютер и работать на нем (сейчас он совершенствует свои знания во FreeBSD), читать, играть на гитаре и слушать живую музыку. Связаться с ним можно по адресу: jabuss@worldnet.att.net.

Дарин Бишоп (Darin Bishop) работает консультантом в компании Levi, Ray and Shoup, Inc., расположенной на Среднем Западе. Сейчас он занят в роли архитектора продукта в крупном проекте, использующем технологии XML. В компетенцию этой должности входят управление проектированием, выбор и исследование технологий, а также технические аспекты работы над проектом. Ранее Дарин занимался разработкой web-приложений для агентства недвижимости, приложений для программ пенсионного обеспечения и другими проектами. Главная область его интересов — связывание отдельных систем при помощи HTTP и XML.

<p>Благодарности</p>

Книга подобного рода — плод работы многих людей, а не одного только автора. Работа сотрудников издательства New Riders была выше всяких похвал, и я хотел бы поблагодарить замечательного исполнительного редактора Стефани Уолл (Stephanie Wall), редакторов Лори Лайонс (Lori Lyons) и Марго Кэтс (Margo Catts) и, наконец, технических редакторов Джейсона Басса и Дарина Бишопа, проверивших весь материал. Спасибо всем за ваш нелегкий труд.

<p>Введение</p>

Добро пожаловать в XSLT, книгу, посвященную языку преобразований расширенной таблицы стилей (Extensible Stylesheet Language Transformations). Книга писалась так, чтобы быть настолько исчерпывающей (и доступной), насколько это возможно для единственной книги по XSLT. XSLT представляет собой средство преобразования документов XML в другие документы XML или в документы совершенно другого типа; сейчас эта тематика очень популярна. Я постарался написать наиболее полную книгу по XSLT, и я считаю, что мне это удалось.

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

В этой книге мы рассмотрим преобразования на языке XSLT из XML в XML, в HTML, в XHTML, в RTF (Rich Text Format, документы форматированного текста), в простой текст, в сценарии JavaScript, в написанные на SQL базы данных и в XSL-FO (Extensible Stylesheet Language Formatting Object, документы форматированных объектов языка расширенной таблицы стилей).

Чтобы полностью раскрыть тему XSLT, в книге описываются все возможные элементы XSLT один за другим, а также их приложения. Кроме того, мы рассмотрим все функции XSLT и XPath, которые могут быть использованы в таблицах стилей XSLT.

И вам предстоит познакомиться с сотнями работающих примеров. Без сомнений, это лучший способ разобраться в том, как работает XSLT. Если мне не удастся объяснить что-либо в тексте, вы всегда сможете посмотреть соответствующий пример, поскольку буквально для каждой подтемы в книге приводится завершенный работающий код.

Все примеры приводятся для того, чтобы их запускать. Я использовал самые популярные процессоры XSLT, их все можно бесплатно загрузить из Интернета: Xalan, XT, Saxon, процессор XSLT фирмы Oracle и даже процессор, встроенный в Microsoft Internet Explorer. В книге по мере изложения будет указываться, где в Интернете можно найти все это программное обеспечение и как с ним работать.

Аналогично написанию кода XML, написание кода XSLT не обычная и не монотонная задача: этот процесс требует искусства, страстной увлеченности и оригинальности мышления, не говоря уже о том, что он часто вызывает разочарование и раздражение. Я постараюсь вести изложение в таком духе и приложу все усилия, чтобы передать в книге мощь и замечательные возможности XSLT.

<p>Материал книги</p>

Книга призвана дать вам столько материала, посвященного XSLT, сколько может содержать одна книга. Мы не только рассмотрим весь синтаксис XSLT от основ до всех специальных аспектов, но и подробно изучим различные современные способы использования XSLT.

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

Ниже перечислен ряд тем книги. Заметьте, что каждая тема включает в себя несколько подтем (слишком многочисленных, чтобы приводить их здесь):

• рекомендации по работе с XSLT 1.0;

• рабочий проект XSLT 1.1;

• требования XSLT 2.0;

• рекомендации по работе с ХРАТН 1.0;

• требования XPath 2.0;

• рекомендации по работе с пробной версией XSL 1.0;

• работа с процессорами Xalan, Saxon, XT и Oracle;

• создание выходных данных в форматах XML, HTML, RTF и простого текста;

• рекурсивная обработка шаблонов;

• правила шаблона по умолчанию;

• обработка пустого пространства;

• отключение вывода;

• выбор применяемого шаблона;

• создание шаблонов совпадений;

• использование предикатов в шаблонах совпадений;

• поиск совпадений элементов, дочерних и производных элементов, атрибутов и т.д.;

• поиск по идентификатору;

• синтаксис, связанный с XPath;

• условия if;

• конструкции for-each;

• реализация конструкций условного выбора;

• простая сортировка элементов;

• обработка множественного выделения;

• вложенные шаблоны;

• параметры таблицы стилей;

• упрощенные таблицы стилей;

• написание таблиц стилей для Internet Explorer;

• создание правил таблицы стилей;

• использование элементов расширения;

• использование функций расширения;

• создание элементов с результатом в виде литерала;

• использование шаблонов со значениями атрибутов;

• удаление пустого пространства;

• создание новых элементов, атрибутов, комментариев и т.д.;

• режимы XSLT (форматирование по контексту);

• фрагменты дерева результатов;

• форматы данных XPath;

• выражения XPath;

• все функции XSLT и XPath;

• создание наборов атрибутов;

• вызов именованных шаблонов;

• единственные и множественные ключи;

• создание документов с множественным выводом;

• использование процессоров Oracle, Saxon, XML4Java, XT в коде Java при помощи вызовов API;

• использование JavaScript для XSLT в Internet Explorer;

• Formatting Objects (форматирующие объекты) XSL-FO;

• Formatting Properties (форматирующие свойства) XSL-FO;

• преобразования XSLT на стороне сервера при помощи Java Server Pages (JSP), Active Server Pages (ASP) и сервлетов Java.

В книге полностью описаны официальные спецификации XSLT, установленные консорциумом World Wide Web Consortium (W3C: рекомендации по работе с XSLT 1.0, рабочий проект XSLT 1.1 и требования XSLT 2.0. Объяснение этих терминов приводятся в главе 1). Как мы рассмотрим в главе 1, консорциум W3C объявил, что рабочий проект (working draft) XSLT 1.1 не будет иметь статуса официальных рекомендаций, поскольку к выпуску готовится XSLT 2.0. Сейчас XSLT 2.0 имеет статус требований (requirements), который предшествует статусу рабочего проекта. Тем не менее, поскольку содержание рабочего проекта XSLT 1.1 будет включено в XSLT 2.0 и поскольку во многих процессорах XSLT будет реализована поддержка XSLT 1.1, я полностью описываю в этой книге и рабочий проект XSLT 1.1, специально отмечая относящийся к этому материал.

При создании таблицы стилей XSLT необходимо указать версию XSLT. Поскольку версия 1.1 никогда не выйдет из стадии рабочего проекта и не будет официально выпущена, я придерживаюсь в примерах этой книги версии 1.0, за исключением обсуждения рабочего проекта XSLT 1.1, — в этом случае я явно указываю версию 1.1.

Кроме того, сегодня в Интернете можно найти огромное количество материала по XSLT, так что я дополняю книгу десятками адресов URL таких ресурсов, в том числе и адресами, с которых можно бесплатно загрузить используемое в книге программное обеспечение. Тут, однако, стоит отметить одно затруднение: адреса в Интернете меняются очень часто, поэтому не удивляйтесь, если некоторые из приведенных в книге адресов изменятся к тому моменту, когда вы попробуете их использовать.

В Интернете по адресу издательства New Riders,можно найти полные тексты всех листингов книги.

<p>Для кого предназначена эта книга</p>

Эта книга рассчитана на всех, кто хочет изучать XSLT и способы его использования на практике. Единственное требование — вы должны представлять, как создавать документы на XML и HTML. Нет необходимости быть экспертом в XML, однако знание соответствующих тем будет полезно[1]. Больше никакой специальной подготовки не требуется.

Если вы хотите выполнять приведенные в книге примеры в процессорах XSLT, которые загружаются бесплатно, в вашей системе должна быть установлена Java (это бесплатно), более подробно мы рассмотрим эту тему в главе 1.

<p>На каком уровне написана книга</p>

Эта книга написана на нескольких различных уровнях, от начального до продвинутого, поскольку область применения XSLT очень широка. Я постараюсь охватить так много материала, касающегося XSLT, как это только возможно, поэтому почти весь материал, от начального до профессионального уровня, изложен в книге. Как уже говорилось, я считаю, что у вас есть представление о XML и HTML.

Навыков программирования при чтении книги не требуется — за исключением главы 10, специально посвященной преимуществам использования процессоров XSLT вместе с Java. Если вы хотите изучить эту главу, вам необходим некоторый опыт программирования на Java.

Поскольку сейчас вариантов использования XSLT очень много, в книге упоминаются несколько программных пакетов; их все можно бесплатно загрузить из Интернета (далее я укажу, откуда).

<p>Используемые соглашения</p>

Примите во внимание ряд используемых в книге соглашений.

Самое важное правило: когда я добавляю новый раздел кода, я помечаю обсуждаемые строки кода полужирным шрифтом:

 

 ,

 and

 .

Отметим также, что нумерованные листинги можно загрузить с сайта издательства:Загрузив этот код, вы сэкономите много времени, если вы хотите выполнить или изменить код примеров книги.

В тех местах, на которые требуется обратить особое внимание, или где требуется дополнительная информация для обсуждения, я буду помещать врезку, например:

УСТАНОВКА НАЧАЛЬНОГО НОМЕРА СТРАНИЦЫ

Еще один совет: чтобы установить начальный номер страницы, можно воспользоваться свойством initial-page-number элемента . Это даст вам возможность, например, отдельно отформатировать главы, начиная каждую главу с нужного номера страницы.

Теперь можно начинать чтение. Предположим, у вас появятся замечания — я приветствую, если вы пришлете их мне или в издательство New Riders. Эта книга задумывалась как новый стандарт в охвате темы XSLT, более полный и более доступный, чем раньше. Пожалуйста, не стесняйтесь уведомлять меня о всех возможных улучшениях. Если вы считаете, что в книге чего-либо недостает — я добавлю этот материал, поскольку я хочу, чтобы эта книга всегда оставалась бестселлером. 

<p>От издательства</p>

Ваши замечания, предложения, вопросы, касающиеся русского издания этой книги, отправляйте по адресу электронной почты comp@piter.com (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

На web-сайте издательствавы найдете подробную информацию о наших книгах.

<p>Глава 1</p><p>Основы XSLT</p>

Добро пожаловать в мир языка преобразований расширенной таблицы стилей, XSLT (Extensible Stylesheet Language Transformations). Эта книга послужит вам путеводителем в огромном мире XSLT, который каждую минуту расширяется непредсказуемым образом. Мы хотим, чтобы этот мир стал и вашим миром. Нам нужно охватить весьма большой материал, поскольку в наши дни XSLT используется в очень интересных местах и очень интересными способами. В этой книге вы увидите, как это все работает.

Собственно XSLT представляет собой средство обработки и форматирования содержимого документов XML. XML уже стал очень популярным, теперь настала очередь XSLT. XML дает вам возможность структурировать данные в документах, a XSLT позволяет работать с содержимым документов XML — оперировать содержимым и создавать другие документы (например, при сортировке XML записей базы данных сотрудников или при сохранении данных в документ HTML, а также при детальном форматировании данных).

С содержимым документов XML можно работать, написав собственную программу, реализующую интерфейс с приложениями разборщика (parser) XML, однако при этом приходится писать код программы самостоятельно. При помощи XSLT вы можете выполнять задачи подобного же рода, не прибегая к программированию. Вместо того чтобы писать код обработки содержимого документов XML на Java, Visual Basic или С++, можно просто указать при помощи XSLT, что вы хотите сделать, и процессор XSLT сделает все остальное. Именно для этих целей и предназначен XSLT, и в мире XML он выходит на ключевые позиции.

<p>XSL = XSLT + XSL-FO</p>

Сам XSLT в действительности является частью более крупной спецификации — расширенного языка таблиц стилей, Extensible Stylesheet Language, или XSL. XSL предназначен для задания точного, до миллиметра, формата документов. 

Похожие книги