
- •Лекция 4-07
- •Тема 5.3. Языки xslt и xsl
- •Тема 5.3. Языки xslTиXsl
- •5.3.1. Связывание документовXmLс таблицами стилей
- •5.3.2. Язык xsLи его компоненты
- •5.3.3. Преобразование документа с помощьюXslt
- •5.3.3.1. Технология преобразования
- •5.3.3.2. Процессоры xslt
- •5.3.4. Структура документаXslt
- •5.3.4.1. Пространство именXslt
- •5.3.4.2. Корневые элементы и элементы верхнего уровня документаXslt
- •5.3.4.3. Условное включение элемента
- •5.3.4.4. Модульная структура преобразованийXslt
- •5.3.4.4.1. Включение внешних файлов
- •5.3.4.4.2. Импорт внешних файлов
- •5.3.4.4.3. Использование сущностей
- •5.3.4.4.4. Импорт схем
- •5.3.5. Совместное использование преобразований и документовXml
- •5.3.6. Управление выводом вXslt
- •5.3.6.1. Элементxsl:output
- •5.3.6.2. Метод вывода "xml"
- •5.3.6.3. Метод вывода "xhtml"
- •5.3.6.4. Метод вывода "html"
- •5.3.6.5. Метод вывода "text"
- •5.3.7. Правила шаблона вXslt
- •5.3.7.1. Образцы и шаблоны
- •5.3.7.2. Объявлениешаблона
- •5.3.7.3. Вызов неименованных правил шаблона
- •5.3.7.4. Упрощенные преобразования
- •5.3.8. Создание узлов элементов и атрибутов вXslt
- •5.3.8.1. Элементxsl:element
- •5.3.8.2. Элементxsl:attribute
- •5.3.8.3. Элементxsl:attribute-set
–
Лекция 4-07
Тема 5.3. Языки xslt и xsl
5.3.1. Связывание документов XML с таблицами стилей
5.3.2. Язык XSL и его компоненты
5.3.3. Преобразование документа с помощью XSLT
5.3.3.1. Технология преобразования
5.3.3.2. Процессоры XSLT
5.3.4. Структура документа XSLT
5.3.4.1. Пространство имен XSLT
5.3.4.2. Корневые элементы и элементы верхнего уровня документа XSLT
5.3.4.3. Условное включение элемента
5.3.4.4. Модульная структура преобразований XSLT
5.3.4.4.1. Включение внешних файлов
5.3.4.4.2. Импорт внешних файлов
5.3.4.4.3. Использование сущностей
5.3.4.4.4. Импорт схем
5.3.5. Совместное использование преобразований и документов XML
5.3.6. Управление выводом в XSLT
5.3.6.1. Элемент xsl:output
5.3.6.2. Метод вывода "xml"
5.3.6.3. Метод вывода "xhtml"
5.3.6.4. Метод вывода "html"
5.3.6.5. Метод вывода "text"
5.3.7. Правила шаблона в XSLT
5.3.7.1. Образцы и шаблоны
5.3.7.2. Объявление шаблона
5.3.7.3. Вызов неименованных правил шаблона
5.3.7.4. Упрощенные преобразования
5.3.8. Создание узлов элементов и атрибутов в XSLT
5.3.8.1. Элемент xsl:element
5.3.8.2. Элемент xsl:attribute
5.3.8.3. Элемент xsl:attribute-set
Тема 5.3. Языки xslTиXsl
5.3.1. Связывание документовXmLс таблицами стилей
Наиболее простым способом форматированного вывода документов XMLвWeb-браузерах является связывание документаXMLс внешними таблицами стилей.
Для такого связывания в спецификации W3 «Связывание таблиц стилей с документамиXML(AssociatingStyleSheetswithXMLdocuments)» введена инструкция по обработкеxml-stylesheet. Эта инструкция помещается в прологе документаXMLи имеет следующий формат:
<?xml-stylesheet href="URL" type="text/css" [title="имя"]
[media="среда-вывода"] [charset="кодировка-таблицы"]
[alternate="yes|no"]?>
Псевдоатрибут hrefв инструкции задает местонахождение таблицы стилей, а псевдоатрибутtype– тип таблицы (его значение всегда"text/css"). Псевдоатрибутtitleзадает имя таблицы стилей, псевдоатрибутmedia– среду вывода документа (например,"screen"или"print"), а псевдоатрибутcharset– кодировку таблицы стилей (например,"Windows-1251"). Псевдоатрибут определяет, является ли таблица альтернативной, т.е. имеет то же значение атрибута title(у альтернативных таблиц должны отличаться значения псевдоатрибутаmediaи/илиcharset). По умолчанию значение псевдоатрибутаalternateравноno.
Пример задания альтернативных таблиц:
<?xml-stylesheet alternate="yes" title="compact"
href="small.css" media="screen" type="text/css"?>
<?xml-stylesheet alternate="yes" title="compact"
href="small-extra.css" media="print" type="text/css"?>
В качестве селекторов в таблицах стилей задаются имена элементов документаXML. Содержимое этих элементов будет выведено вWeb-браузере (InternetExplorerилиNetscapeNavigator) в указанном формате.
Пусть задан следующий документ XML:
<?xml version="1.0" encoding="Windows-1251"?>
<?xml-stylesheet href="HTMLmessage.css" type="text/css"?>
<message>
<header>
<from>ivanov@mail.com</from>
<to>petrov@mail.com</to>
<subject>Поздравление</subject>
</header>
<body>Поздравляю с днем рождения!</body>
</message>
Таблица стилей HTMLmessage.cssдля этого документа имеет следующий вид:
message {font-size: 12pt; font-family: Arial}
header {color: navy}
from, to {display: block; font-weight: bold;
text-indent: 40pt}
subject {display: block; color: brown}
body {display: block; text-indent: 10pt}
На экран Web-браузера будет выведено:
ivanov@mail.com
petrov@mail.com
Поздравление
Поздравляю с днем рождения!
Возможности таблиц стилей по форматированному выводу документов XMLочень ограничены, посколькуWeb-браузер выводит только текстовое содержимое элементов и не «видит» в документеXMLни пустых элементов, ни атрибутов элементов. Более широкие возможности предоставляет использование языка преобразования для расширенных таблиц стилей –XSLT, который будет рассмотрен далее.