Алексей Валиков - Технология 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"
Интервал:
Закладка: