Языки информационного обмена

Функции процессора XSL


  • Во-первых, процессор строит рощу, являющуюся внутренним представлением документа. Эта роща всегда имеет корневой элемент, представляющий собой весь документ XML, а не его элемент верхнего уровня. Ниже корневого элемента расположена вся иерархия узлов. Каждый узел типизирован. Например, он может быть предназначен для определения DTD, для схемы или для команды обработки. Если элемент содержит атрибуты, то у каждого элемента также имеется коллекция узлов атрибутов. Если элемент содержит данные, то в узел элемента вкладывается еще и соответствующие им узел. Таким образом, потомками узла элемента может быть коллекция узлов атрибутов и узел данных.
  • Во-вторых, создает структуру для документа XSLT. Она также может представлять собой рощу, но может быть структурой любого типа, оптимизированной для обработки шаблонов и соответствия образцов.
  • Затем каждый раз, встретив элемент <xsl: apply-templates>, формирует список узлов и продолжит работу с этим списком. Если элемент <xsl:apply-templates> содержит атрибут select, список узлов формируется на основе указанного запроса XPath. В противном случае список содержит все дочерние узлы.
  • Каждый раз, встретив конструкцию <xsl: value-of>, процессор извлекает значение из исходного дерева, основываясь на выражении XPath ее атрибута select.
  • Трансформация не ограничивается только трансляцией типа один-к-одному: она позволяет добавлять новое информационное содержание, добавлять и удалять элементы, а также осуществлять трансляции типа один-ко-многим.



Содержание раздела