№ | Слайд | Текст |
1 |
 |
XML-ТЕХНОЛОГИИ Лекция 4Xslt-трансформация |
2 |
 |
Трансформация XML-данныхКатегории трансформации Структурные трансформации – трансформация одного словаря XML в другой по аналогии с переводом Создание динамических документов – возможность изменять порядок, сортировать и фильтровать части документа XML Трансформации в язык формирования изображения – подготовка документа для визуального представления в какой-либо форме браузера пользователя |
3 |
 |
XSLTОпределение XSLT (Extensible Stylesheet Language for Transformations — расширяемый язык таблиц стилей для преобразований) Спецификация W3C — ноябрь 2000 года |
4 |
 |
Назначение XSLTXSLT позволяет преобразовывать xml-документ: – в другой xml-документ; – в html-документ для отображения веб-браузером; – в документы иных форматов (RTF, PDF, tex и т. П.). |
5 |
 |
Таблицы стилейТаблица стилей (Stylesheet) — это XML-документ специального вида (обычно это файл с расширением «xsl»), содержащий набор правил преобразования исходного XML-документа, написанных на языке XSLT и предназначенных для XSLT-процессора. |
6 |
 |
Xslt-процессорXslt-процессор — это программа, которая выполняет преобразование исходного xml-документа на основе таблицы стилей |
7 |
 |
XSL и FOXSLT - язык преобразований XML xpath - язык определения частей и путей к элементам XML XSL formatting objects – язык форматирования XML |
8 |
 |
Пространство имен XSLTСтандартный XSLT относится к пространству имен с URI: http://www.w3.org/1999/XSL/Transform Общепринятым считается префикс «xsl:» |
9 |
 |
Структура таблицы стилей |
10 |
 |
Как происходит преобразованиеОсновные объекты дерево исходного документа / входное дерево дерево таблицы стилей дерево результирующего документа / выходное дерево |
11 |
 |
Шаблоны в XSLCSS: p { font-family: arial } ? XSL: шаблоны (templates) Таблица стилей содержит по крайней мере один шаблон Точка входа — шаблон для обработки корневого элемента Шаблон может содержать: поддеревья конечных литеральных элементов элементы-инструкции |
12 |
 |
Шаблон с КЛЭ |
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: <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> |
24 |
 |
Инструкция xsl:ifXsl-таблица стилей |
25 |
 |
Инструкция xsl:ifРезультирующий документ |
26 |
 |
Инструкция xsl:chooseИсходный документ |
27 |
 |
Инструкция xsl:chooseXsl-таблица стилей |
28 |
 |
Инструкция xsl:chooseРезультирующий документ |
29 |
 |
Переменные и параметры<xsl:param name = "имя">значение</xsl:param> <xsl:variable name = "имя" select = "XPath-выражение"/> <xsl:variable name = “stud" select = «Студенты/Студент[1]/@ФИО"/> <xsl:value-of select="$stud"/> |
«Xslt-трансформация» |