Проверки имен
Проверка имен является самой распространенной формой проверки узлов, так как она позволяет явно указать имена узлов, которые нужно выбрать. Тем не менее указание имени узла не приведет к автоматическому выбору соответствующего узла, так как дерево документа может содержать несколько различных узлов с одинаковым именем. Чтобы выбрать соответствующий узел, проверка узла выбирает только те узлы, чьи имена совпадают с указанным именем и чьи типы узлов совпадают с основным типом узла указанной оси.
В следующей таблице приводятся основные типы узлов для различных осей.
Ось | Основной тип узла |
---|---|
Любая ось, отличная от оси |
element |
attribute |
attribute |
namespace |
namespace |
Имя, указанное при проверке имен, может иметь один из следующих трех типов: звездочка (*), QName или выражение NCName:*
. В следующей таблице показаны примеры использования каждого из этих типов имен совместно с указанной осью для определения расположения конкретного набора узлов.
Имя | Возвращаемое значение | Пример |
---|---|---|
* (звездочка) |
True для любого узла основного типа. |
|
QName |
True для любого узла основного типа, чье развернутое имя идентично развернутому имени, указанному типом имени QName. |
|
NCName:* |
True для любого узла основного типа, чье развернутое имя имеет URI-код пространства имен, до которого разворачивается имя NCName, независимо от локального имени. |
|
Замечания
Если задан тип имени QName, то выражение XPath сначала разворачивает имя QName, основываясь на контекстных объявлениях пространств имен в XML-файле. Процесс разворачивания идентичен процессу разворачивания для имен элементов в открывающем и закрывающем тегах, за исключением того, что в этом случае не используется пространство имен по умолчанию, объявленное с префиксом xmlns
. Если имя QName не содержит префикса, то выражение XPath ищет узлы, чьи локальные имена совпадают с заданным именем QName и чей URI-код пространства имен имеет значение NULL. Тип имени QName вызовет ошибку, если префикс QName не соответствует ни одному из контекстных объявлениях пространств имен в файле.
Если задан тип имени NCName:*, то выражение XPath развертывает имя NCName тем же образом, что и префикс имени QName. Точно так же тип имени NCName:* вызывает ошибку, если часть имени NCName не соответствует ни одному из префиксов, содержащихся в контекстных объявлениях пространств имен в файле.
См. также
Справочник
Проверки узлов
Проверки типов узлов
Проверки целевых инструкций по обработке