Книга: Технология XSLT

Выбор шаблонов для элементов пространства имен, определенного по умолчанию

Выбор шаблонов для элементов пространства имен, определенного по умолчанию

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

<xsl:template match="foo">
 ...
</xsl:template>

то обрабатывать он будет только те элементы foo, которые принадлежат нулевому пространству имен. Для элемента

<bar:foo xmlns:bar="urn:bar-namespace"/>

придется писать шаблон вида

<xsl:template match="ns:foo" xmlns:ns="urn:bar-namespace">
 ...
</xsl:template>

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

Листинг 12.8. Изменение пространства имен для паттерна

<xsl:stylesheet
 version="2.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns="urn:bar-namespace">
 <xsl:template match="foo">
  ...
 </xsl:template>
</xsl:stylesheet>

В элементе xsl:stylesheet пространство имен с URI "urn:bar-namespace" определяется как пространство имен по умолчанию и паттерн foo соответствует элементу с локальной частью имени "foo" и URI пространства имен "urn:bar-namespace".

Оглавление книги


Генерация: 1.136. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз