Алексей Валиков - Технология XSLT
- Название:Технология XSLT
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2002
- Город:Санкт-Петербург
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Алексей Валиков - Технология XSLT краткое содержание
Книга посвящена разработке приложений для преобразования XML-документов с использованием XSLT — расширяемого языка стилей для преобразований. Обсуждается применение языков XSLT и XPath в решении практических задач: выводу документов в формате HTML, использованию различных кодировок для интернационализации и, в частности, русификации приложений, вопросам эффективности существующих подходов для решения проблем преобразования. Для иллюстрации материала используется большое количество примеров.
Для начинающих и профессиональных программистов
Технология XSLT - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
This is the XSLT namespace.
Символ 1999в URI пространства имен XSLT никак не соотносится с версией языка преобразования. Это просто год, который был назначен Консорциумом W3 данной спецификации и не более. Версия использованного языка определяется атрибутом versionэлемента xsl:stylesheet.
Общепринятым префиксом пространства имен языка XSLT является префикс xsl. Естественно, он может быть любым другим, но в этой книге мы будем использовать именно такое обозначение. Таким образом, объявление пространства имен XSLT в общем случае будет выглядеть следующим образом: xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
Приведем пример простого преобразования, в котором объявлено пространство имен XSLT.
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
В некоторых случаях исходный текст намного упрощается, если пространство имен XSLT объявляется по умолчанию:
version="1.0"
xmlns="http://www.w3.org/1999/XSL/Transform">
Кроме этого, пространство имен по умолчанию можно снова обнулить:
version="1.0"
xmlns="http://www.w3.org/1999/XSL/Transform">
В последнем случае элемент rootбудет принадлежать нулевому пространству имен. Результат всех трех преобразований одинаков:
Элементы XSLT могут содержать атрибуты, принадлежащие другим, но обязательно ненулевым, пространствам имен. Такие атрибуты могут содержать дополнительную информацию, но поскольку они не относятся к XSLT, обрабатываться процессором в общем случае они не будут.
Если мы определим в преобразовании элемент вида
xmlns:xsldoc="http://www.a.com/XSL/doc">
...
то в общем случае атрибут xsldoc:textбудет проигнорирован. Однако процессор, которому знакомо пространство имен с URI http://www.a.com/XSL/docсможет понять, что этот атрибут применен для документирования преобразования и будет использовать его в своих целях.
Корневые элементы преобразования
За исключением случаев упрощенных преобразований, корневым элементом XSLT-документа всегда является элемент xsl:stylesheetили его синоним xsl:transform. Эти элементы полностью идентичны и различаются только именами, поэтому мы будем описывать семантику и пользоваться только элементом xsl:stylesheet.
Элементы xsl:stylesheet и xsl:transform
id=" идентификатор "
extension-element-prefixes=" префиксы "
exclude-result-prefixes=" префиксы "
version=" число ">
extension-element-prefixes=" префиксы "
exclude-result-prefixes=" префиксы "
version=" число ">
Элемент xsl:stylesheetимеет обязательный атрибут version, в котором указывается версия языка, использованная при создании этого преобразования. Текущей версией языка является версия 1.0, поэтому все преобразования, которые мы будем приводить в качестве примеров, будут начинаться следующим тегом:
Необязательный атрибут idможет содержать уникальный идентификатор данного преобразования. Этот атрибут используется в тех случаях, когда преобразование включено в преобразуемый документ для его идентификации внутри этого документа.
Если преобразование, включенное в преобразуемый документ, будет иметь вид
...
version="1.0"
id="trans"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
...
то ассоциироваться с документом оно будет следующей инструкцией:
Необязательный атрибут extension-element-prefixesперечисляет префиксы пространств имен, которые определяют элементы расширения. Об использовании этого атрибута мы расскажем в главе 10 , которая посвящена созданию расширений языка XSLT.
Необязательный атрибут exclude-result-prefixesперечисляет префиксы пространств имен, определения которых не нужно включать в выходящий документ. Использование этого атрибута подробно описано в главе 8 .
Элемент xsl:stylesheetможет включать следующие элементы языка XSLT:
□ xsl:import;
□ xsl:include;
□ xsl:strip-space;
□ xsl:output;
□ xsl:key;
□ xsl:decimal-format;
□ xsl:namespace-alias;
□ xsl:attribute-set;
□ xsl:variable;
□ xsl:param;
□ xsl:template.
Эти элементы называются элементами верхнего уровня , поскольку они могут находиться на самом верхнем (не считая уровня корневого элемента) уровне в иерархии элементов документа. Более того, все перечисленные элементы кроме xsl:variableи xsl:paramдолжны находиться только на верхнем уровне. Элементы xsl:variableи xsl:paramмогут использоваться в шаблонах, определяя локальные переменные и параметры.
Если преобразование импортирует внешние модули, первыми дочерними элементами xsl:stylesheetдолжны быть элементы xsl:import. Иначе говоря, элементам xsl:importвнутри xsl:stylesheetдолжны предшествовать только другие элементы xsl:import. Порядок всех остальных дочерних элементов xsl:stylesheetне имеет значения.
Помимо элементов верхнего уровня, xsl:stylesheetможет содержать элементы других, но обязательно ненулевых пространств имен. Это позволяет включать в преобразования любую сопутствующую информацию, правда спецификация оговаривает, что такого рода элементы не должны изменять поведение элементов и функций самого XSLT.
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Simple stylesheet
Выделенный полужирным шрифтом на листинге 4.1 элемент sourceпринадлежит пространству имен с URI http://www.a.com/XSL/source. Поскольку пространство имен этого элемента ненулевое, такое объявление является корректным.
Упрощенные преобразования
Многие простые преобразования состоят из единственного правила, которое обрабатывает корневой узел входящего документа. Общий вид такого рода преобразований показан в следующем листинге.
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
XSLT позволяет упрощать запись таких преобразований, опуская элементы xsl:stylesheetи xsl:templateи оставляя только шаблон, создающий выходящий документ.
Корневой элемент упрощенной записи должен содержать атрибут xsl:version, указывающий версию языка XSLT, использованного в шаблоне. Как правило, этот элемент также содержит объявление пространства имен XSLT, хотя оно может быть определено и в другом месте.
Преобразование, приведенное в листинге 4.2, можно переписать в упрощенном виде следующим образом.
xsl:version="1.0"
Интервал:
Закладка: