Книга: Технология XSLT
Пространство имен XSLT
Пространство имен XSLT
Для того чтобы выделить элементы и атрибуты, которые принадлежат логической схеме XSLT, в этом языке применяется механизм пространств имен. Это означает, что в документе преобразования элементы, относящиеся к XSLT, должны принадлежать его пространству имен.
Уникальный идентификатор ресурса пространства имен XSLT имеет вид
http://www.w3.org/1999/XSL/Transform
Как отмечалось ранее, по адресу, указанному в URI пространства имен, совершенно необязательно будет находиться что-либо осмысленное. Однако в нашем случае по адресу http://www.w3.org/1999/XSL/Transform
находится текстовый документ, содержащий единственную строчку:
This is the XSLT namespace.
Символ 1999
в URI пространства имен XSLT никак не соотносится с версией языка преобразования. Это просто год, который был назначен Консорциумом W3 данной спецификации и не более. Версия использованного языка определяется атрибутом version
элемента xsl:stylesheet
.
Общепринятым префиксом пространства имен языка XSLT является префикс xsl
. Естественно, он может быть любым другим, но в этой книге мы будем использовать именно такое обозначение. Таким образом, объявление пространства имен XSLT в общем случае будет выглядеть следующим образом: xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
Пример
Приведем пример простого преобразования, в котором объявлено пространство имен XSLT.
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:element name="root"/>
</xsl:template>
</xsl:stylesheet>
В некоторых случаях исходный текст намного упрощается, если пространство имен XSLT объявляется по умолчанию:
<stylesheet
version="1.0"
xmlns="http://www.w3.org/1999/XSL/Transform">
<template match="/">
<element name="root"/>
</template>
</stylesheet>
Кроме этого, пространство имен по умолчанию можно снова обнулить:
<stylesheet
version="1.0"
xmlns="http://www.w3.org/1999/XSL/Transform">
<template match="root">
<root xmlns=""/>
</template>
</stylesheet>
В последнем случае элемент root
будет принадлежать нулевому пространству имен. Результат всех трех преобразований одинаков:
<root/>
Элементы XSLT могут содержать атрибуты, принадлежащие другим, но обязательно ненулевым, пространствам имен. Такие атрибуты могут содержать дополнительную информацию, но поскольку они не относятся к XSLT, обрабатываться процессором в общем случае они не будут.
Пример
Если мы определим в преобразовании элемент вида
<xsl:template match="a" xsldoc:text="Processes all a elements"
xmlns:xsldoc="http://www.a.com/XSL/doc">
...
</xsl:template>
то в общем случае атрибут xsldoc:text
будет проигнорирован. Однако процессор, которому знакомо пространство имен с URI http://www.a.com/XSL/doc
сможет понять, что этот атрибут применен для документирования преобразования и будет использовать его в своих целях.
- Пространство имен XSL
- Узлы пространств имен
- Применение оси namespace
- Ширина и глубина ассортимента
- Категорийный менеджмент. Курс управления ассортиментом в рознице
- Имена индексов ограничений
- Пример применения метода «пять почему»
- Имена объектов длиной 68 символов
- Ценовая сегментация ассортимента
- 5.12.2 Открытие поименованного канала
- Сохранение рабочей книги с именем, представляющим собой текущую дату
- Использование отдельных процессоров XSLT