Вход/Регистрация
XSLT
вернуться

Холзнер Стивен

Шрифт:

•

<xsl:apply-templates>
;

•

<xsl:attribute>
;

•

<xsl:call-template>
;

•

<xsl:choose>
;

•

<xsl:comment>
;

•

<xsl:copy>
;

•

<xsl:copy-of>
;

•

<xsl:element>
;

•

<xsl:fallback>
;

•

<xsl:for-each>
;

•

<xsl:if>
;

•

<xsl:message>
;

•

<xsl:number>
;

•

<xsl:processing-instruction>
;

•

<xsl:text>
;

•

<xsl:value-of>
;

•

<xsl:variable>
.

В теле шаблона больше никакие элементы XSLT непосредственно появиться не могут. Как вы увидите в главе 9, элемент

<xsl:param>
может появиться в шаблоне перед телом, но он не называется инструкцией XSLT. В шаблонах могут также появляться и другие элементы XSLT, такие как
<xsl:sort>
,
<xsl:otherwise>
и
<xsl:with-param>
, но только в определенных местах, поэтому W3C не называет их инструкциями. Далее в книге мы рассмотрим, как использовать каждую из этих инструкций.

Элементы расширения

Элементы расширения рассматриваются в главе 5; эти элементы, расширяющие XSLT, определяются пользователем или процессором XSLT. Во многих процессорах XSLT были определены собственные расширения — и это стало одной из причин, по которым W3C представил рабочий проект XSLT 1.1, где механизм расширений был более регламентирован. Вероятно, эта функциональность будет включена в XSLT 2.0.

Элементы буквального результата

Если элемент в теле шаблона не является инструкцией XSL или элементом расширения, процессор XSLT должен рассматривать его в качестве элемента буквального результата. Это означает, что элемент должен трактоваться буквально и копироваться в результирующее дерево (то есть копироваться в выходное дерево, созданное процессором XSLT).

Например, в следующем теле шаблона элемент

<TD>
является элементом буквального результата, который будет скопирован в выходной документ:

<xsl:template match="RADIUS">

 <TD>RADIUS</TD>

</xsl:template>

Элементы буквального результата могут сами по себе иметь содержимое, которое затем трактуется как еще одно тело шаблона и разбирается процессором XSLT. Позже в настоящей главе мы посмотрим, как работает этот механизм.

Элементы буквального результата могут также обладать атрибутами, которые интерпретируются процессором XSLT. Например, при помощи атрибута

version
 можно указать, что все элементы XSLT внутри элемента буквального результата должны быть элементами XSLT версии 1.0:

<xsl:template match="RADIUS">

 <TD xsl:version="1.0">RADIUS</TD>

</xsl:template>

В следующем списке перечислены все возможные атрибуты элемента буквального результата:

• Attribute Value Templates, шаблон значений атрибута (необязательный). Любые выражения XPath в фигурных скобках вычисляются, и результат в виде строкового значения копируется в атрибут в результирующем дереве. Устанавливается в шаблон значений атрибута (см. главу 3);

• 

xsl:exclude-result-prefixes
(необязательный). Определяет, какие пространства имен не будут скопированы в результирующее дерево. Принимает значения списка префиксов пространств имен, разделенных символами- разделителями;

• 

xsl:extension-element-prefixes
(необязательный). Заставляет процессор XSLT трактовать дочерние элементы элемента буквального результата в перечисленных пространствах имен как элементы расширения, а не элементы буквального результата;

• 

xsl:use-attribute-sets
(необязательный). Атрибуты в перечисленных наборах атрибутов добавляются в элемент буквального результата и копируются в результирующее дерево. Принимает значение списка
QName
, идентифицирующих поименованные элементы
<xsl:attribute-set>
;

• 

xsl:version
(необязательный). Устанавливает версию элементов XSL в элементе буквального результата. Принимает численное значение.

Теперь можно начать работать с этой информацией.

Совпадающие элементы в шаблонах

Для указания того, с каким узлом или узлами вы хотите работать в шаблоне, в XSLT имеются разнообразные способы поиска или выбора узлов. Следует установить атрибут

match
элемента
<xsl:template>
в образец (pattern), определяющий имя узла или узлов, с которыми вы хотите работать. В главе 3, посвященной шаблонам, будет показано, как создавать образцы. Например, образец «/» соответствует корневому узлу; образец «*» задает любой узел элемента; образцу «PLANET» удовлетворяют все узлы элемента
<PLANET>
и т.д.

  • Читать дальше
  • 1
  • ...
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: