Поделиться через


Элемент <xsl:include>

Включает другой XSLT-файл.

<xsl:include
  href = "uri-reference"/>

Атрибуты

  • href
    Обязательный.Ссылка универсального кода ресурса (URI) на ресурс, указывающая файл XSLT для включения.

Сведения об элементе

Количество вхождений

Без ограничений

Родительские элементы

xsl:stylesheet, xsl:transform

Дочерние элементы

(Нет дочерних элементов)

Замечания

Файл XSLT может включать в себя другой файл XSLT с помощью элемента <xsl:include>.Значение атрибута href представляет собой URI-ссылкe на соответствующий файл.Относительный URI разрешается относительно базового URI элемента <xsl:include>.

Элемент <xsl:include> допускается только в качестве дочернего по отношению к элементу <xsl:stylesheet>.

Включения обрабатываются в службах MSXML по мере их возникновения на уровне дерева.Следует заметить, что это отличается от способа рассмотрения дерева XML в модели DOM.Ресурс, на который указывает значение атрибута href, анализируется как XML-документ, и дочерние элементы <xsl:stylesheet> в данном документе заменяют элемент <xsl:include> в том документе, куда включен данный документ.В отличие от элемента <xsl:import>, правила включаемого шаблона имеют тот же приоритет импорта, что и правила в таблице стилей, куда включен шаблон.Поэтому, если включающая и включаемая таблицы стилей содержат правила шаблона для одного и того же элемента, то вызываемый шаблон определяется по порядку появления в документе.Если шаблон во включающей таблице стилей следует за шаблоном включаемой таблицы стилей, то вызывается первый шаблон.В противном случае вызывается второй.

Если файл XSLT прямо или косвенно включает сам себя, возникает ошибка.

Повторное включение одного и того же XSLT-файла может вызвать ошибки из-за повторяющихся определений.Подобные повторные включения менее очевидны, если они не прямые.Например, A, B, C и D — файлы XSLT.Файлы B, C и D включают в себя другие файлы XSLT следующим образом:

  • файл B включает файл A;

  • файл С включает файл A;

  • файл D включает файлы B и C.

В этом случае XSLT-файл D будет косвенно включать XSLT-файл A дважды.Этой ошибки можно избежать. Для этого нужно выделить все содержимое B (кроме включения файла А) в отдельный XSLT-файл B1 и изменить файл B таким образом, чтобы в него были включены B1 и A.Затем используйте тот же подход для C и, наконец, измените D, включив в него A, B1, C1.

Пример

В следующем разделе приводится пример <xsl:include>.