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

       

Применение правил преобразования


Обычно просмотр исходного документа XML начинается с его корневого узла. Для него подбирается правило преобразования, конструктор которого явно или неявно создает корневой узел преобразованного документа. Затем конструктор создает последовательность узлов, которые будут потомками корневого узла нового документа.

Если для какого-то узла дерева документа в таблице стилей не оказалось соответствующего ему правила, то к нему применяется встроенное в процессор XSLT правило по умолчанию. Правила по умолчанию опираются на вид узла.

Для корневого узла и узла-элемента правило по умолчанию означает просмотр его потомков.

Для узла-атрибута и текстового узла встроенное правило по умолчанию создает текстовый узел, содержащий их значения. Если значение атрибута или текстового узла пусто, то правило не делает ничего, точнее говоря, создает пустую последовательность узлов.

Для узла-комментария, инструкций по обработке и узла пространства имен по умолчанию создается пустая последовательность узлов.

С другой стороны, для какого-то исходного узла в таблице стилей может оказаться несколько подходящих правил преобразования. Одним из них всегда будет правило по умолчанию. Как бы то ни было, к узлу всегда применяется только одно правило. Оно отбирается так:

  • во-первых, из всех импортированных правил отбирается то, которое записано в таблицу стилей в последнюю очередь;
  • во-вторых, импортированное правило отбрасывается, если есть подходящее правило в самой таблице стилей;
  • в-третьих, отбирается правило с наибольшим значением атрибута priority. Если атрибут priority отсутствует, то правилу назначается приоритет по умолчанию, вычисляемый по виду образца, записанного в атрибуте match.



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