<xsl:template match='/'>

<html> <head> <title>Expense Report Summary</title> </head>

<body>

<p>Total Amount: <xsl:value-of select='expense-report/total'/></p>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

Фиксированный конечный элемент, являющийся для стиля элементом документа, должен иметь атрибут xsl:version, указывающий версию XSLT, необходимую для этого стиля. Для данной версии XSLT значением этого атрибута должно быть 1.0 , значение должно иметь тип Number. Другие фиксированные конечные элементы также должны иметь атрибут xsl:version. Если атрибут xsl:version не равен 1.0 , должен быть разрешен режим обработки, совместимый с последующими версиями. (см. главу [2.5 Обработка, совместимая с последующими версиями]).

Фиксированный конечный элемент, используемый как стиль, может иметь то же содержание, что и в случае, когда он является частью другого стиля. Таким образом, фиксированный конечный элемент, используемый как стиль, не может содержать элементов верхнего уровня.

В некоторых ситуациях, единственная возможность для системы узнать, что некий XML документ XSLT процессор должен обрабатывать именно как стиль XSLT – это исследовать сам представленный XML документ самостоятельно. Использование упрощенного синтаксиса усложняет эту задачу.

Замечание: Например, другой язык xml (axl) также может использовать в элементе документа атрибут axl:version чтобы показать, что XML документ является AXL документом, который необходимо обрабатывать AXL процессором. Если документ имеет оба указанных атрибута axl:version, становится непонятным, следует ли данный документ обрабатывать XSLT процессором или же AXL процессором.

По этой причине упрощенный синтаксис не должен использоваться для XSLT стилей, которые могут оказаться в такой ситуации. Например, такая ситуация может возникать когда стиль XSLT передается как сообщение с типом среды MIME text/xml или application/xml, а получатель использует этот тип среды MIME чтобы определить, как следует обрабатывать это сообщение.

2.4 Полные имена

Название внутреннего объекта XSLT, а именно: именованного шаблона (см. [6 Именованные шаблоны]), режима (см. [5.7 Режимы]), набора атрибутов (см. [7.1.4 Именованные наборы атрибутов]), ключа (см. [12.2 Ключи]), десятичного формата (см. [12.3 Форматирование чисел]), переменной или параметра (см. [11 Переменные и параметры]), задается как QName. Если название имеет префикс, то этот префикс преобразуется в ссылку URI с помощью деклараций пространства имён, в области действия оказался атрибут с этим названием. В качестве названия указанного объекта используется расширенное имя, состоящее из локальной части и, возможно нулевой, ссылки URI. Для названий без префиксов пространство имён по умолчанию не используется.

2.5 Обработка, совместимая с последующими версиями

Режим совместимости с последующими версиями можно использовать для самого элемента, его атрибутов, его потомков и их атрибутов, если имеется элемент xsl:stylesheet с атрибутом version, значение которого отлично от 1.0 , или имеется фиксированный конечный элемент, имеющий атрибут xsl:version со значением, отличным от 1.0, либо имеется фиксированный конечный элемент, не имеющий атрибута xsl:version, но элемент документа в стиле использует упрощенный синтаксис (см. [2.3 Фиксированный конечный элемент как стиль]). Фиксированный конечный элемент, имеющий атрибут xsl:version, значение которого равно 1.0 , отменяет режим совместимости с последующими версиями для себя, своих атрибутов, своих потомков и их атрибутов.

Если элемент обрабатывается в режиме совместимости с последующими версиями, то:

– если есть некий элемент верхнего уровня, а XSLT 1.0 такие элементы не позволяет использовать в качестве элементов верхнего уровня, то такой элемент и его содержимое должны быть проигнорированы;

– если в шаблоне есть некий элемент, а XSLT 1.0 не позволяет в шаблонах использовать такие элементы, то когда этот элемент не обрабатывается, сообщения об ошибке возникать не должно, если же этот элемент уже был обработан, то XSLT должен выполнить откат для этого элемента как описано в главе [15 Откат] ;

– если элемент имеет атрибут, который XSLT 1.0 ему иметь не позволяет, или если элемент имеет необязательный атрибут со значением, которое XSLT 1.0 также не позволяет ему иметь, такой атрибут должен быть проигнорирован.

Таким образом, любой процессор XSLT 1.0 должен уметь обработать представленный далее стиль без ошибок, даже несмотря на то, что тот содержит элементы из пространства имён XSLT, которые не были заданы в этой спецификации:

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

<xsl:template match='/'>

<xsl:choose>

<xsl:when test='system-property('xsl:version') >= 1.1'>

<xsl:exciting-new-1.1-feature/>

</xsl:when>

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату