конспект лекций, вопросы к экзамену

Языки Extensible Markup Language(XSL) и XSL Transformations (XSLT): назначение

и особенности использования. Примеры реализации таблиц преобразования.

Спецификация и стандарт XSL описывает языки представления XML документа и преобразования (трансформирования) данных.

Представление данных – это отображение их в определенном формате или среде. Т.е. Стиль оформления данных.

Трансформация данных – это представление входного документа в виде дерева узлов (в дальнейшем node), и затем преобразование входного дерева (input tree) в выходное дерево (result tree). Т.е. этот процесс можно представить, как преобразование/обмен данных.

XSLT (eXtensible Stylesheet Language for Transformations) – это язык для преобразования структуры XML документа

Для обработки различных элементов документа используется свои правила и их может быть много.

Правила “работают” независимо друг от друга. Добавление правила не влияет на работу другого – не имеет побочных эффектов.

Объявление правил относительно друг друга в файле таблицы стилей не имеет значения. Поэтому использование правил не имеет побочных эффектов друг на друга по умолчанию. Т.е. Именно такой стиль обычно используется при программировании таблиц стилей. Однако его можно менять – правила могут воздействовать друг на друга и можно контролировать их применение.

Такое независимое поведение правил – это основное отличие о процедурно-ориентированных языков.

Хотелось вкраце описать какие действия выполняются при работе с XSLT таблицами стилей. В самом общем виде это сводится к тому, что XSLT процессор принимает на входе XML документ и XSLT таблицу стилей – как данные на входе и код, который надо применить к этим данным и после этого начинает применить шаблонные правила (template rules) для получения нужных данных на выходе.

XSLT Processing – включает в себя шаги перечисленные на слайде.

Чтение исходного XML документа, и загрузка связанной XSLT таблицы стилей

Разбор (parsing) XML документа и связанных XSLT таблиц в деревья с вершинами (элементы и аттрибуты).

Применение правил к исходному дереву документа

  1. Создание выходного дерева на основе применения всех правил из XSLT таблицы стилей
  2. Сохранение полученного результирующего дерева в выходной файл-документ
  3. Формат файлов на выходе может быть HTML, XML или текстовый файл.
  4. Действия указанные выше выполняет XML parser и XSLT processor. Задача XSL процессора – получение из исходных документов их представление в виде деревьев с вершинами элементов и атрибутов. Задача XSLT процессора работа с этими представлениями деревьями

 

Корневым элементом любого XSLT документа является заголовок:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Аттрибуты должны объявить версию XSLT документа и ХОТЯ БЫ ОДНО пространство имен.

По простанству имен. Обычно это xmlns:xsl="http://www.w3.org/1999/XSL/Transform". Это объявление требуется для всех XSLT элементов в таблице стилей.

Могут объявляться дополнительные пространства имен – для использования расширений (обычно это дополнительные возможности представляемые используемым XSLT процессором).

Пространство имен по умолчанию не имеет префикса и используется для литеральных результирующих элементов. Например это может быть HTML тег:

<DIV>XSLT Output<DIV>

Это основные аттрибуты – есть еще:

id – уникальный идентификатор для встраивания XSLT file-ов

extension-element-prefixes - Языки XSLT и XPath разработаны с возможностью дальнейшего расширения. Т.е. Например XSLT процессор может предоставлять дополнительные возможности относительно стандартных, определенных в языке XSLT. Это например например операции над множествами, функции для работы с датой и временем, регулярных выражений, математических функций, возможности нескольких выводов.

XSLT допускает два типа расширений: элементы расширения и функции расширения. Если в шаблоне обнаружен элемент с именем из расширения, то тогда этот элемент обрабатывается как инструкция, а не как фиксированный конечный элемент.

При выполнении условия в элементе <xsl:if>, <xsl:when> или <xsl:otherwise> инструкции находящиеся внутри этого элемента начинают выполняться.

Назначение элементов <xsl:if> и <xsl:choose> понятно из примера. Choose – используется при выборе из множества условий и различных действиях по этим условиям.

Атрибут test содержит выражение, которое может быть сравнением или XPath выражением. Результат вычисления этого выражения становится равным true если:

  • Возвращается непустой набор вершин
  • Возвращается ненулевое число
  • Возвращается Result Tree Fragment
  • Возвращается непустая строка

Сортировка – очень простая операция, выполняемая при помощи элемента <xsl:sort>

Элемент <xsl:sort> указывает ключ, по которому должна производится сортировка. Этот элемент должен быть указан в  <xsl:for-each> или <xsl:apply-templates>

 

24.02.2018; 08:00
просмотров: 744