Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_KL_2010_14.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
28.97 Mб
Скачать

7.4.2.Структура таблицы стилей xsl

Общая структура таблицы стилей довольно проста: в ее состав входят последовательности и шаблоны. Здесь мы увидим, каким образом эти компоненты используются для визуализации XML-документов.

Таблица стилей XSL содержит обязательный корневой элемент с названием stylesheet. Этот элемент наряду с набором других элементов и свойств XSL является частью словаря XSLT. Чтобы использовать содержимое XSLT, необходимо сначала объявить пространство имен, в которое оно будет помещено. Ниже показано, как с помощью элемента stylesheet объявляется пространство имен XSL:

Данный код делает доступными все элементы и атрибуты пространства имен XSL и назначает им префикс xsl. Это действие стандартно для всех таблиц стилей; его смысл поясняется в следующих подразделах, где мы рассмотрим кодирование последовательностей и шаблонов.

Последовательности

При обработке таблицы стилей XSL поиск данных для трансформации осуществляется с помощью последовательностей. Говоря точнее, последовательность идентифицирует элемент или атрибут XML-документа, являющийся ветвью его древовидной структуры.

Последовательности задаются весьма просто. Их можно сравнить путями файловой системы: если пути указывают на папки и файлы вашего жесткого диска, то последовательности определяют элементы и атрибуты документа. Так, к примеру, элемент head, вложенный в элемент html любого HTML-документа, идентифицируется как html/head.

Назначение последовательностей − выделять фрагменты XML-доку­мен­тов, подлежащие трансформации. Когда XSL-процессор обнаруживает некоторые данные, соответствующие последовательности он передает их для выполнения трансформации шаблону.

Шаблоны

Шаблоны − часть таблицы стилей, предназначенная для трансформации данных. Когда XSL-процессор обнаруживает последовательность в документе, он пропускает ее через шаблон и трансформирует. Количество шаблонов таблицы стилей не ограничено. Если в таблице стилей имеется несколько шаблонов, то каждый выполняет трансформацию определенного фрагмента XML-документа.

Поскольку XSL представляет собой XSL-словарь, таблицы стилей закодированы с помощью XML. Шаблон задается элементом xsl:template, а последовательность, связанная с ним, − атрибутом match элемента xsl:template.

Следующий пример демонстрирует использование шаблона для корневого элемента документа:

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

Например, шаблон для элемента title XML-документа, приведенного на Рис. 1.1. , будет выглядеть так:

Как видим, элемент title задан с перечислением всех его родительских элементов. Обратите внимание на закрывающий тег </xsl:template>, обязательный для всех шаблонов. Чтобы задать преобразование для данных находящихся внутри элемента title, следует поместить тег <xsl:value-of/> внутри шаблона, как показывает следующий код.

Здесь преобразование заключается в том, что перед данными элемента title будет помещен текст Глава, выделенный полужирным шрифтом. Элемент <xsl:value-of/> представляет содержимое элемента title. Кроме <xsl:value-of/> существует еще несколько элементов, которые часто используются при создании шаблонов и входят в стандартное пространство имен XSL:

xsl:value-of − вставляет содержимое элемента (атрибута) XML;

xsl:if − задает условное соответствие для шаблонов;

xsl:for-each − создает цикл для элементов документа XML;

xsl:apply-templates − применяет шаблон к XML-документу.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]