XSLT-ТРАНСФОРМАЦИЯ XML- ТЕХНОЛОГИИ Лекция 4
Трансформация 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: Общепринятым считается префикс «xsl:»
Структура таблицы стилей
Как происходит преобразование Основные объекты дерево исходного документа / входное дерево дерево таблицы стилей дерево результирующего документа / выходное дерево
Шаблоны в XSL CSS: p { font-family: arial } XSL: шаблоны (templates) Таблица стилей содержит по крайней мере один шаблон Точка входа шаблон для обработки корневого элемента Шаблон может содержать : поддеревья конечных литеральных элементов элементы - инструкции
Шаблон с КЛЭ
Форсирующая трансформация Форсирующая обработка (Push Processing) обработка, управляемая логикой исходного документа Основные инструкции apply-templates template match="образец" Образец (pattern) это информация, которая указывается в шаблоне для того, чтобы определить, соответствует ли шаблон выбранному узлу.
Примеры образцов в шаблонах template match = "Студент/Предмет/ Сдача" "Предмет = '120']/Сдача [1]" "Студенты/Студент/ Предмет/Сдача" "Предмет"
Форсирующая трансформация Дополнительные инструкции value-of select="образец" value-of select = "count(Студенты/Студент[1]/П редмет = '120']/Сдача)"
Пример форсирующей трансформации Исходный документ XSL- таблица стилей
Пример форсирующей трансформации Результирующий документ Привязка XSL к XML
Пример форсирующей трансформации Исходный документ XSL- таблица стилей
Пример форсирующей трансформации Результирующий документ Привязка XSL к XML
Извлекающая трансформация Извлекающая обработка (Pull Processing) обработка, управляемая логикой таблицы стилей Основные конструкции for-each select="XPath-выражение"
Пример извлекающей трансформации XSL таблица стилей Исходный документ
Пример извлекающей трансформации Результирующий документ
Условные конструкции Основные инструкции if: инструкции choose инструкции инструкции инструкции
Инструкция xsl:if XSL- таблица стилей
Инструкция xsl:if Результирующий документ
Инструкция xsl:choose Исходный документ
Инструкция xsl:choose XSL- таблица стилей
Инструкция xsl:choose Результирующий документ
Переменные и параметры значение