XSLT - Стивен Холзнер
Шрифт:
Интервал:
Закладка:
Кроме того, сегодня в Интернете можно найти огромное количество материала по XSLT, так что я дополняю книгу десятками адресов URL таких ресурсов, в том числе и адресами, с которых можно бесплатно загрузить используемое в книге программное обеспечение. Тут, однако, стоит отметить одно затруднение: адреса в Интернете меняются очень часто, поэтому не удивляйтесь, если некоторые из приведенных в книге адресов изменятся к тому моменту, когда вы попробуете их использовать.
В Интернете по адресу издательства New Riders, http://www.newriders.com, можно найти полные тексты всех листингов книги.
Для кого предназначена эта книга
Эта книга рассчитана на всех, кто хочет изучать XSLT и способы его использования на практике. Единственное требование — вы должны представлять, как создавать документы на XML и HTML. Нет необходимости быть экспертом в XML, однако знание соответствующих тем будет полезно[1]. Больше никакой специальной подготовки не требуется.
Если вы хотите выполнять приведенные в книге примеры в процессорах XSLT, которые загружаются бесплатно, в вашей системе должна быть установлена Java (это бесплатно), более подробно мы рассмотрим эту тему в главе 1.
На каком уровне написана книга
Эта книга написана на нескольких различных уровнях, от начального до продвинутого, поскольку область применения XSLT очень широка. Я постараюсь охватить так много материала, касающегося XSLT, как это только возможно, поэтому почти весь материал, от начального до профессионального уровня, изложен в книге. Как уже говорилось, я считаю, что у вас есть представление о XML и HTML.
Навыков программирования при чтении книги не требуется — за исключением главы 10, специально посвященной преимуществам использования процессоров XSLT вместе с Java. Если вы хотите изучить эту главу, вам необходим некоторый опыт программирования на Java.
Поскольку сейчас вариантов использования XSLT очень много, в книге упоминаются несколько программных пакетов; их все можно бесплатно загрузить из Интернета (далее я укажу, откуда).
Используемые соглашения
Примите во внимание ряд используемых в книге соглашений.
Самое важное правило: когда я добавляю новый раздел кода, я помечаю обсуждаемые строки кода полужирным шрифтом:
<xsl:template match="PLANET">
<xsl:value-of select="NAME"/>
<xsl:if test="position()!=last()">, </xsl:if>
<xsl:if test="position()=last()-1">and </xsl:if>
<xsl:if test="position()=last()">.</xsl:if>
</xsl:template>
Отметим также, что нумерованные листинги можно загрузить с сайта издательства: http://www.newriders.com. Загрузив этот код, вы сэкономите много времени, если вы хотите выполнить или изменить код примеров книги.
В тех местах, на которые требуется обратить особое внимание, или где требуется дополнительная информация для обсуждения, я буду помещать врезку, например:
УСТАНОВКА НАЧАЛЬНОГО НОМЕРА СТРАНИЦЫ
Еще один совет: чтобы установить начальный номер страницы, можно воспользоваться свойством initial-page-number элемента <fo:page-sequence>. Это даст вам возможность, например, отдельно отформатировать главы, начиная каждую главу с нужного номера страницы.
Теперь можно начинать чтение. Предположим, у вас появятся замечания — я приветствую, если вы пришлете их мне или в издательство New Riders. Эта книга задумывалась как новый стандарт в охвате темы XSLT, более полный и более доступный, чем раньше. Пожалуйста, не стесняйтесь уведомлять меня о всех возможных улучшениях. Если вы считаете, что в книге чего-либо недостает — я добавлю этот материал, поскольку я хочу, чтобы эта книга всегда оставалась бестселлером.
От издательства
Ваши замечания, предложения, вопросы, касающиеся русского издания этой книги, отправляйте по адресу электронной почты [email protected] (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На web-сайте издательства http://www.piter.com вы найдете подробную информацию о наших книгах.
Глава 1
Основы XSLT
Добро пожаловать в мир языка преобразований расширенной таблицы стилей, 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 он выходит на ключевые позиции.
XSL = XSLT + XSL-FO
Сам XSLT в действительности является частью более крупной спецификации — расширенного языка таблиц стилей, Extensible Stylesheet Language, или XSL. XSL предназначен для задания точного, до миллиметра, формата документов.
Форматирующая часть XSL, представляющая гораздо более крупную спецификацию, чем XSLT, основана на специальных форматирующих объектах (formatting objects) — эта часть XSL часто называется XSL-FO (или XSL:FO, или XSLFO). XSL-FO — сложная тема, поскольку задание стилей документов при помощи форматирующих объектов может оказаться весьма запутанным процессом. Фактически XSLT изначально был добавлен в XSL для того, чтобы проще осуществлять преобразование документов XML в документы, основанные на форматирующих объектах XSL-FO.
Эта книга посвящена XSLT, но рассматривается также и введение в XSL-FO, в том числе способ использования XSLT для преобразования документов в форму XSL-FO; в конце концов, XSLT впервые был представлен для упрощения работы с XSL-FO. В начале данной главы будет приведен обзор как XSLT, так и XSL-FO.
Краткая историческая справка
XSL был создан консорциумом World Wide Web Consortium (W3C, www.w3.org) — объединением групп, первоначально возглавлявшимся Тимом Бернерс-Ли (Tim Berners-Lee). W3C — это комитет, выпускающий спецификации, — такие, как спецификация для XSL, используемая в данной книге. Именно спецификации делают XML и XSL тем, чем они являются.
W3C И ЯЗЫКИ СТИЛЕЙ
Вы можете прочитать об истории работы комитета W3C с языками стилей по адресу www.w3.org/Style/History. Интересно посмотреть, какая объемная работа была проделана и как много языков стилей сменилось за это время.
W3C первоначально, в 1980-х, разработал «дедушку» XML, SGML (Standard Generalized Markup Language, стандартный обобщенный язык разметки), однако он был слишком сложен для того, чтобы завоевать широкую популярность, и в действительности XML (как и HTML) представляет собой упрощенную версию SGML. W3C также создал для работы совместно с SGML язык стилей DSSSL (Document Style Semantics and Specification Language, язык семантики стиля и спецификации документа) — и так же, как XML был произведен от SGML, XSL основан на исходном DSSSL. Как утверждает W3C: «Модель, используемая XSL для отображения документов на экране, базируется на многих годах работы над сложным языком стилей по стандарту ISO, который называется Document Style Semantics and Specification Language (DSSSL)».
Однако исходная часть XSL, то есть XSL-FO, все равно оказалась не настолько простой, чтобы найти широкое распространение, поэтому XSLT был представлен как средство упрощения преобразования документов XML в форму XSL-FO. Как оказалось, именно XSLT был взят на вооружение, поскольку он представляет собой законченный язык преобразований, позволяющий работать с содержимым документов XML без написания программного кода, преобразовывать эти документы в другие документы XML, формат HTML или другие основанные на текстах форматы. Большой успех XSLT удивил даже W3C.
Преобразования XSLT-XSL
XSLT позволяет работать непосредственно с содержимым документов XML. Например, у вас может быть огромный документ XML, содержащий всю бейсбольную статистику за последний сезон, однако вас может интересовать только статистика для питчеров. Чтобы извлечь только эти данные, можно написать программу на Java, Visual Basic или С++, которая будет работать с разборщиками XML. Разборщики представляют собой специальные программные пакеты, читающие документы XML и передающие все данные документа последовательно в ваш код. Затем можно создать новый документ XML, pitchers.xml, содержащий только данные о питчерах.