Книга состоит из двенадцати глав и трёх приложений, содержание которых мы кратко опишем ниже.
Первая глава книги об XSLT не случайно посвящена языку XML (англ. eXtensible Markup Language — расширяемый язык разметки). XML — это фундаментальная концепция, по отношению к которой XSLT является прикладной технологией и поэтому для эффективного применения XSLT нужно хорошо понимать основы XML.
Мы разделяем мнение множества экспертов, о том, что лучшая документация по XML — это спецификация языка, снабжённая внятными аннотациями, комментариями и примерами. Первая глава описывает синтаксис и конструкции языка XML именно в том виде, в каком они приведены в технической рекомендации Консорциума W3, акцентируя внимание на важных с точки зрения XSLT моментах.
Помимо синтаксиса и физической модели XML-документа, в первой главе раскрывается концепция XML, идея, которая за всем этим стоит. Краткий обзор практических аспектов использования XML подкреплён описаниями архитектуры типовых проектов, основанных на XML-технологиях.
Завершающая часть первой главы посвящена истории языка XML.
Вторая глава содержит базовую информацию о языке XSLT. В ней поясняется потребность в преобразованиях структурированных документов, описывается архитектура преобразований, синтаксические и семантические особенности XSLT как языка.
Особое внимание уделяется практическому использованию XSLT в составе информационных систем. Во второй главе рассматриваются наиболее естественные области применения технологии XSLT.
Глава заканчивается краткой справкой об истории языка XSLT.
Третья глава посвящена моделям, которые используются в языке XSLT. В ней рассматривается древовидная модель XML-документа, модель данных, используемая в языках XSLT и XPath, переменные, выражения, а также модель самого процесса преобразования. Можно сказать, что третья глава представляет взгляд на XSLT «изнутри». Эта информация важна для понимания того, как работают преобразования, и почему это работает именно так.
Четвёртая глава рассказывает о том, что представляет собой программа на языке XSLT, как она строится и из каких частей состоит. Кроме этого, рассматривается упрощённая форма преобразований, модульная организация преобразований и способы объединения преобразования и преобразуемого документа. В четвёртой главе также освещаются такие чисто практические аспекты, как литеральные элементы результата и шаблоны значений атрибутов.
В пятой главе рассматриваются основные структурные единицы преобразования, называемые шаблонными правилами, а также множество особенностей их использования: способы вызова, режимы выполнения, типы, приоритет, конфликты и так далее. Дополнительно разбирается использование в шаблонах переменных и параметров.
Шестая глава посвящена языку XPath, который используется в XSLT для выборок и вычислений на XML-документах. В этой главе рассматривается синтаксис и семантика XPath-выражений и паттернов XSLT и детально описываются функции базовой библиотеки XPath.
В этой главе описываются основные элементы XSLT — элементы, которые непосредственно создают части выходящего документа, вычисляют выражения, производят копирование, обеспечивают условную и циклическую обработку. Основные элементы предоставляют «базовый набор услуг», без которых, как правило, не обходится ни одно преобразование.
В восьмой главе разбираются возможности, которые предоставляются дополнительными элементами и функциями языка XSLT. Эти элементы и функции предоставляют сервисные возможности, которые не связаны непосредственно с созданием выходящего документа, но имеют значение для построения сложных преобразований. К этим возможностям относится создание и обработка ключей, манипуляции с пробельным пространством, обращение ко внешним XML-документам, сортировка и многое другое.
Эта глава поможет сделать первые шаги разработчикам, которым необходимо использовать XSLT совместно с другими языками программирования. В ней приведены простые примеры вызова преобразований из программ на таких языках программирования, как Object Pascal, C/C++, VBScript, JavaScript, Java и некоторых других.
Десятая глава посвящена вопросам создания и использования функций и элементов расширения. В этой главе разбирается процесс написания и подключения функций и элементов расширения на примере интерфейсов таких процессоров, как Saxon, Xalan и Oracle XSLT Processor, а также вопросы, связанные с обеспечением переносимости и отработкой исключительных ситуаций в преобразованиях, использующих расширения.
Одиннадцатая глава написана для тех, кто не любит изобретать лишний раз велосипед. В ней описываются решения некоторых наиболее распространённых проблем, как-то: группировка, циклические и рекурсивные вычисления, операции над множествами и так далее.
Последняя глава книги позволяет забежать немного вперёд и предугадать, что будет с языком XSLT в следующих его версиях. Выводы, которые делаются в этой главе, основаны на изменениях, предложенных в черновой версии XSLT 1.1, а также на требованиях, которые были сформированы ко второй версии языка. Анализ этой информации в будущем позволит безболезненно перейти на новую версию XSLT.
В первом приложении произведён обзор наиболее распространённых XSLT-процессоров с тем, чтобы помочь читателю выбрать наиболее подходящий инструмент. Помимо этого, в начале приложения приводятся статистические сведения о производительности и популярности различных XSLT-процессоров.
Второе приложение содержит справочную информацию об элементах и атрибутах языка XSLT. В одну таблицу сведены синтаксис элементов и атрибутов и краткое описание их семантики.
Третье приложение содержит справочную информацию о функциях базовой библиотеки языка XPath и функциях языка XSLT, которые дополняют эту библиотеку.
В четвёртом приложении приведён небольшой список полезных интернет-ресурсов, так или иначе связанных с XSLT. Сюда относятся списки часто задаваемых вопросов, уроки по XSLT, архивы библиотек и инструментов, официальные спецификации Консорциума W3 и так далее.