Слайд 1XSLT-ТРАНСФОРМАЦИЯ
XML-ТЕХНОЛОГИИ
Лекция 4
Слайд 2Трансформация XML-данных
Категории трансформации
Структурные трансформации – трансформация одного словаря XML в другой
по аналогии с переводом
Создание динамических документов – возможность изменять порядок, сортировать и фильтровать части документа XML
Трансформации в язык формирования изображения – подготовка документа для визуального представления в какой-либо форме браузера пользователя
Слайд 3XSLT. Определение
XSLT (Extensible Stylesheet Language for Transformations — расширяемый язык таблиц
стилей для преобразований)
Спецификация W3C — ноябрь 2000 года
Слайд 4Назначение XSLT
XSLT позволяет преобразовывать XML-документ:
– в другой XML-документ;
– в HTML-документ для отображения веб-браузером;
– в
документы иных форматов (RTF, PDF, TeX и т. п.).
Слайд 5Таблицы стилей
Таблица стилей (Stylesheet) — это XML-документ специального вида (обычно это
файл с расширением «xsl»), содержащий набор правил преобразования исходного XML-документа, написанных на языке XSLT и предназначенных для XSLT-процессора.
Слайд 6XSLT-процессор
XSLT-процессор — это программа, которая выполняет преобразование исходного XML-документа на основе
таблицы стилей
Слайд 7XSL и FO
XSLT - язык преобразований XML
XPath - язык определения частей
и путей к элементам XML
XSL Formatting Objects – язык форматирования XML
Слайд 8Пространство имен XSLT
Стандартный XSLT относится к пространству имен с URI:
http://www.w3.org/1999/XSL/Transform
Общепринятым считается
префикс «xsl:»
Слайд 10Как происходит преобразование
Основные объекты
дерево исходного документа / входное дерево
дерево таблицы стилей
дерево
результирующего документа / выходное дерево
Слайд 11Шаблоны в XSL
CSS: p { font-family: arial } → XSL: шаблоны
(templates)
Таблица стилей содержит по крайней мере один шаблон
Точка входа — шаблон для обработки корневого элемента
Шаблон может содержать:
поддеревья конечных литеральных элементов
элементы-инструкции
Слайд 13Форсирующая трансформация
Форсирующая обработка (Push Processing) — обработка, управляемая логикой исходного документа
Основные
инструкции
apply-templates
template match="образец"
Образец (pattern) — это информация, которая указывается в шаблоне для того, чтобы определить, соответствует ли шаблон выбранному узлу.
Слайд 14Примеры образцов в шаблонах
template match =
"Студент/Предмет/ Сдача"
"Предмет [@объем = '120']/Сдача [1]"
"Студенты/Студент/Предмет/Сдача"
"Предмет"
Слайд 15Форсирующая трансформация
Дополнительные инструкции
value-of select="образец"
value-of select =
"Студенты/Студент/@Код"
"Студенты/Студент/@ФИО"
"Студенты/Студент[1]/@Код"
"count(Студенты/Студент[1]/Предмет [@объем = '120']/Сдача)"
Слайд 16Пример форсирующей трансформации
Исходный документ
XSL-таблица стилей
Слайд 17Пример форсирующей трансформации
Результирующий документ
Привязка XSL к XML
Слайд 18Пример форсирующей трансформации
Исходный документ
XSL-таблица стилей
Слайд 19Пример форсирующей трансформации
Результирующий документ
Привязка XSL к XML
Слайд 20Извлекающая трансформация
Извлекающая обработка (Pull Processing) —обработка, управляемая логикой таблицы стилей
Основные конструкции
for-each
select="XPath-выражение"
Слайд 21Пример извлекающей трансформации
XSL таблица стилей
Исходный документ
Слайд 22Пример извлекающей трансформации
Результирующий документ
Слайд 23Условные конструкции
Основные инструкции
if:
инструкции
choose
инструкции
инструкции
инструкции
Слайд 24Инструкция xsl:if
XSL-таблица стилей
Слайд 25Инструкция xsl:if
Результирующий документ
Слайд 26Инструкция xsl:choose
Исходный документ
Слайд 27Инструкция xsl:choose
XSL-таблица стилей
Слайд 28Инструкция xsl:choose
Результирующий документ
Слайд 29Переменные и параметры
значение
"XPath-выражение"/>