XSLT-ТРАНСФОРМАЦИЯ XML-ТЕХНОЛОГИИ Лекция 4

advertisement
XML-ТЕХНОЛОГИИ
Лекция 4
XSLT-ТРАНСФОРМАЦИЯ
Трансформация XML-данных
Категории трансформации
 Структурные трансформации – трансформация одного
словаря XML в другой по аналогии с переводом
 Создание динамических документов – возможность изменять
порядок, сортировать и фильтровать части документа XML
 Трансформации в язык формирования изображения –
подготовка документа для визуального представления в
какой-либо форме браузера пользователя
XSLT. Определение
 XSLT (Extensible Stylesheet
Language for Transformations —
расширяемый язык таблиц стилей
для преобразований)
 Спецификация W3C — ноябрь
2000 года
Назначение XSLT
XSLT позволяет преобразовывать XML-документ:
– в другой XML-документ;
– в HTML-документ для отображения веб-браузером;
– в документы иных форматов (RTF, PDF, TeX и т. п.).
Таблицы стилей
Таблица стилей (Stylesheet) — это XML-документ
специального вида (обычно это файл с
расширением «xsl»), содержащий набор правил
преобразования
исходного
XML-документа,
написанных на языке XSLT и предназначенных
для XSLT-процессора.
XSLT-процессор
XSLT-процессор — это программа, которая
выполняет преобразование исходного XMLдокумента на основе таблицы стилей
XSL и FO
 XSLT - язык преобразований XML
 XPath - язык определения частей и путей к элементам
XML
 XSL Formatting Objects – язык форматирования XML
Пространство имен XSLT
 Стандартный XSLT относится к пространству
имен с URI:
http://www.w3.org/1999/XSL/Transform
 Общепринятым считается префикс «xsl:»
Структура таблицы стилей
xml
xsl:stylesheet
version = "1.0" encoding = "UFT-8"
xsl = "http://www.w3.org/1999/XSL/Transform"
version = "1.0"
xsl:template
КЛЭ
Инструкции
Как происходит преобразование
Основные объекты
 дерево исходного документа / входное дерево
 дерево таблицы стилей
 дерево результирующего документа / выходное
дерево
Шаблоны в XSL
CSS: p { font-family: arial } → XSL: шаблоны (templates)
Таблица стилей содержит по крайней мере один
шаблон
Точка входа — шаблон для обработки корневого
элемента
Шаблон может содержать:
 поддеревья конечных литеральных элементов
 элементы-инструкции
Шаблон с КЛЭ
Шаблон
xsl:template — match = "/"
html
head
title
= "Студенты"
body
h2
= "Список
студентов"
Результат
html
head
title
= "Студенты"
body
h2
= "Список
студентов"
Студенты
Список
студентов
Форсирующая трансформация
 Форсирующая обработка (Push Processing) —
обработка, управляемая логикой исходного
документа
Основные инструкции
 apply-templates
 template match="образец"
 Образец (pattern) — это информация, которая
указывается в шаблоне для того, чтобы определить,
соответствует ли шаблон выбранному узлу.
Примеры образцов в шаблонах
template match =
 "Студент/Предмет/
Сдача"
 "Предмет [@объем =
'120']/Сдача [1]"
 "Студенты/Студент/
Предмет/Сдача"
 "Предмет"
Форсирующая трансформация
Дополнительные инструкции
 value-of select="образец"
value-of select =
 "Студенты/Студент/@Код"
 "Студенты/Студент/@ФИО"
 "Студенты/Студент[1]/@Код"
 "count(Студенты/Студент[1]/П
редмет [@объем =
'120']/Сдача)"
Пример форсирующей трансформации
 Исходный документ
 XSL-таблица стилей
Пример форсирующей трансформации
 Привязка XSL к XML
 Результирующий документ
Пример форсирующей трансформации
 Исходный документ
 XSL-таблица стилей
Пример форсирующей трансформации
 Привязка XSL к XML
 Результирующий документ
Извлекающая трансформация
 Извлекающая обработка (Pull Processing) —
обработка, управляемая логикой таблицы
стилей
Основные конструкции
 for-each select="XPath-выражение"
Пример извлекающей трансформации
 Исходный документ
 XSL таблица стилей
Пример извлекающей трансформации
 Результирующий документ
Условные конструкции
Основные инструкции
 if:
<xsl:if test="Условие">
инструкции
</xsl:if>
 choose
<xsl:choose>
<xsl:when test="Условие1">
инструкции
</xsl:when>
<xsl:when test="Условие2">
инструкции
</xsl:when>
<xsl:otherwise>
инструкции
</xsl:otherwise>
</xsl:choose>
Инструкция xsl:if
 XSL-таблица стилей
Инструкция xsl:if
 Результирующий документ
Инструкция xsl:choose
 Исходный документ
Инструкция xsl:choose
 XSL-таблица стилей
Инструкция xsl:choose
 Результирующий документ
Переменные и параметры
 <xsl:param name = "имя">значение</xsl:param>
 <xsl:variable name = "имя" select = "XPath-выражение"/>
 <xsl:variable name = “stud" select =
«Студенты/Студент[1]/@ФИО"/>
 <xsl:value-of select="$stud"/>
Download