Элемент <xsl:key>
Элемент <xsl:key> объявляет именованный ключ, т. е. пару «имя-значение», связанную с указанным элементом в XML-документе. Этот ключ используется с фукнцией key() в выражениях XPath для осуществления эффективного доступа к связанным элементам в сложном XML-документе.
<xsl:key
name = QName
match = Pattern
use = Expression
</xsl:key>
Атрибуты
имя
Задает ключу имя Полные имена (XSLT).match
Задает значение Шаблоны (XSLT), определяющее узел, содержащий этот ключ.use
Задает значение Выражения (XSLT), которое будет использоваться в качестве значения ключа. Ключ может иметь одно из следующих значений: атрибут, дочерний элемент или содержимое совпадающего элемента.
Сведения об элементе
Количество вхождений |
Без ограничений |
Родительские элементы |
|
Дочерние элементы |
(Нет дочерних элементов) |
Заметки
Ключи можно использовать в качестве обобщенных идентификаторов для ссылок на элементы в XML-документе. Чтобы сделать это, нужно сначала использовать элемент <xsl:key> для того, чтобы объявить ключ для узла. Затем нужно вызвать функцию key() для получения узла, предоставив имя и значение ключа в качестве аргументов функции. Дополнительные сведения см. в приведенных ниже примерах.
Для узла можно объявить несколько ключей. Таким образом, можно выполнить запрос узла несколькими способами.
При работе с относительно большими XML-документами ключ является быстрым способом запроса элементов. Ключ в первую очередь индексирует расположение требуемых узлов. Тем не менее при компиляции элементов <xsl:key> обработчик XSLT не создает эти индексы до тех пор, пока функция key() не выполнит вызовы для ключей. Таким образом, требующая долгого времени операция индексации выполняется только при необходимости.
В таблице стилей элементы <xsl:key> являются элементами верхнего уровня и не могут появиться внутри шаблона. Чтобы избежать циклических ссылок, нельзя использовать ссылки на параметры или переменные в качестве частей совпадения <xsl:key>.
Пример
В следующем разделе приводится пример элемента <xsl:key>.