Корневые элементы и элементы верхнего уровня документа XSLT
За исключением случаев упрощенных преобразований, корневым элементом документа XSLT всегда является элемент xsl:stylesheet или его синоним xsl:transform. Эти элементы имеют следующий синтаксис:
<xsl:stylesheet
id="идентификатор"
extension-element-prefixes="префиксы"
exclude-result-prefixes="префиксы"
version
xpath-default-namespace="URI"
default-validation = "preserve" | "strip"
default-collation="список-URI"
input-type-annotations = "preserve" | "strip" |
"unspecified"
>
<!--
Содержимое: элементы xsl:import, элементы верхнего уровня
-->
</xsl:stylesheet>
<xsl:transform
id="идентификатор"
extension-element-prefixes="префиксы"
exclude-result-prefixes="префиксы"
version="число"
xpath-default-namespace="URI"
default-validation="preserve" | "strip"
default-collation="список-URI"
input-type-annotations="preserve" | "strip" |
"unspecified"
>
<!--
Содержимое: элементы xsl:import, элементы верхнего уровня
-->
</xsl:transform>
Элементы xsl:stylesheet и xsl:transform имеют обязательный атрибут version, в котором указывается версия языка, использованная при создании этого преобразования (допустимыми являются значения 1.0 или 2.0).
Необязательный атрибут id может содержать уникальный идентификатор данного преобразования. Этот атрибут используется в тех случаях, когда преобразование включено в преобразуемый документ для его идентификации внутри этого документа.
Необязательный атрибут extension-element-prefixes перечисляет префиксы пространств имен, которые определяют элементы расширения.
Необязательный атрибут exclude-result-prefixes перечисляет префиксы пространств имен, определения которых не нужно включать в выходной документ.
Необязательный атрибут xpath-default-namespace задает пространство имен для элементов и типов данных, используемых в выражениях XPath при преобразовании данных, а также в некоторых других случаях, например в выражениях шаблонов. При задании этого атрибута соответствующие элементы и типы данных записываются выражениях XPath без префикса.
Необязательный атрибут default-validation задает значение по умолчанию атрибута validation в инструкциях xsl:document, xsl:element, xsl:attribute, xsl:copy, xsl:copy-of и xsl:result-document, а также значение по умолчанию атрибута xsl:validation во всех литеральных элементах результирующей структуры документа. Если для атрибута default-validation задано значение "strip" (это значение по умолчанию), то проверка соответствия документа своей схеме, т.е. проверка действительности документа, пропускается. Если задано значение "preserve", такая проверка выполняется.
Необязательный атрибут default-collation задает правила по умолчанию для сравнения данных в выражениях XPath преобразования. Значением этого атрибута является список разделенных пробелами URI, содержащих соответствующие правила сравнения.
Необязательный атрибут input-type-annotations задает правило сохранения типов данных исходного документа в выходном документе. Иногда необходимо, чтобы структура выходного документа была одинаковой, независимо от того, проверялся ли входной документ на соответствие своей схеме или нет. Для этого необходимо заменить типы всех элементов на xsl:untyped, а типы всех атрибутов на xsl:untypedAtomic. Такое изменение выполняется, если для атрибута input-type-annotations задано значение "strip". Если задано значение "preserve", типы данных сохраняются. По умолчанию атрибут имеет значение "unspecified", т.е. изменение типа данных не определено.
Элементы верхнего уровня делятся на две категории: объявления (определены в пространстве имен XSLT) и элементы, определенные пользователем в других пространствах имен.
На верхнем уровне можно использовать следующие объявления:
· xsl:import;
· xsl:import-schema;
· xsl:include;
· xsl:strip-space;
· xsl:preserve-space;
· xsl:output;
· xsl:key;
· xsl:decimal-format;
· xsl:namespace-alias;
· xsl:attribute-set;
· xsl:character-map;
· xsl:variable;
· xsl:function;
· xsl:param;
· xsl:template.
Все перечисленные элементы кроме xsl:variable и xsl:param должны находиться только на верхнем уровне. Элементы xsl:variable и xsl:param могут использоваться как объявления (на верхнем уровне), так и в качестве инструкций в шаблонах, определяя локальные переменные и параметры.
Если преобразование импортирует внешние модули, первыми дочерними элементами xsl:stylesheet (xsl:transform) должны быть элементы xsl:import. Порядок всех остальных дочерних элементов xsl:stylesheet (xsl:transform) не имеет значения.
Дата добавления: 2015-03-20; просмотров: 889;