Especificando um teste de nó no caminho do local (SQLXML 4.0)
Um teste de nó especifica o tipo de nó selecionado pela etapa de local. Todo eixo (child, parent, attribute ou self) tem um tipo de nó principal. Para o eixo attribute, o tipo de nó principal é <attribute>. Para os eixos parent, child e self, o tipo de nó principal é <element>.
Observação |
---|
O teste de nó de curinga * (por exemplo, child::*) não tem suporte. |
Teste de nó: exemplo 1
O caminho do local child::Customer seleciona os filhos do elemento <Customer> do nó de contexto.
Neste exemplo, child é o eixo e Customer é o teste de nó. O tipo de nó principal para o eixo child é <element>. Portanto, o teste de nó será TRUE se o nó <Customer> for um nó <element>. Se o nó de contexto não tiver nenhum filho <Customer>, um conjunto vazio de nós será retornado.
Teste de nó: exemplo 2
O caminho do local attribute::CustomerID seleciona o atributo CustomerID do nó de contexto.
No exemplo, attribute é o eixo e CustomerID é o teste de nó. O tipo de nó principal do eixo attribute é <attribute>. Portanto, o teste de nó será TRUE se o nó CustomerID for um nó <attribute>. Se o nó de contexto não tiver nenhum CustomerID, um conjunto vazio de nós será retornado.
Observação |
---|
Nessa implementação do XPath, se ume etapa do local se referir a um tipo <element> ou <attribute> que não esteja declarado no esquema, será gerado um erro. Isto é diferente da implementação de XPath em MSXML, que retorna um conjunto de nós vazio. |
Sintaxe abreviada para os eixos
A sintaxe abreviada a seguir para o caminho de local tem suporte:
attribute:: pode ser abreviado para @.
O caminho do local Customer[@CustomerID="ALFKI"] é o mesmo que child::Customer[attribute::CustomerID="ALFKI"].
child:: pode ser omitido de uma etapa de local.
Assim, child é o eixo padrão. O caminho do local Customer/Order é o mesmo que child::Customer/child::Order.
self::node() pode ser abreviado como um ponto (.) e parent::node() pode ser abreviado como dois pontos (..).