Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Um predicado filtra um conjunto de nós em relação a um eixo (semelhante a uma cláusula WHERE numa instrução SELECT). O predicado é especificado entre parênteses. Para cada nó no conjunto de nós a ser filtrado, a expressão do predicado é avaliada com esse nó como nó de contexto, com o número de nós no conjunto de nós como tamanho de contexto. Se a expressão do predicado for avaliada como TRUE para esse nó, o nó é incluído no conjunto de nós resultante.
O XPath também permite filtragem baseada em posição. Uma expressão de predicado que avalia a um número seleciona esse nó ordinal. Por exemplo, o caminho Customer[3] de localização devolve o terceiro cliente. Tais predicados numéricos não são suportados. Apenas expressões de predicados que retornam um resultado booleano são suportadas.
Observação
Para informações sobre as limitações desta implementação XPath do XPath e as diferenças entre esta e a especificação do W3C, veja Introdução ao Uso de Consultas XPath (SQLXML 4.0).
Predicado de Seleção: Exemplo 1
A seguinte expressão XPath (caminho de localização) seleciona do nó de contexto atual todos os <filhos do elemento Cliente> que têm o atributo CustomerID com valor ALFKI:
/child::Customer[attribute::CustomerID="ALFKI"]
Nesta consulta XPath, child e attribute são nomes de eixos.
Customeré o teste do nó (TRUE se Customer for um <nó> elemento, porque <elemento> é o tipo principal de nó para o child eixo).
attribute::CustomerID="ALFKI" é o predicado. No predicado, attribute é o eixo e CustomerID é o teste do nó (TRUE se o CustomerID for um atributo do nó de contexto, porque <o atributo> é o tipo principal do nó do eixo do atributo ).
Usando a sintaxe abreviada, a consulta XPath pode também ser especificada como:
/Customer[@CustomerID="ALFKI"]
Predicado de seleção: Exemplo 2
A seguinte expressão XPath (caminho de localização) seleciona do nó de contexto atual todos os <netos da Ordem> que têm o atributo SalesOrderID com o valor 1:
/child::Customer/child::Order[attribute::SalesOrderID="1"]
Nesta expressão XPath, child e attribute são os nomes dos eixos.
Customer, Order, e SalesOrderID são os testes de nós.
attribute::OrderID="1" é o predicado.
Usando a sintaxe abreviada, a consulta XPath pode também ser especificada como:
/Customer/Order[@SalesOrderID="1"]
Predicado de Seleção: Exemplo 3
A seguinte expressão XPath (caminho de localização) seleciona do nó de contexto atual todos os filhos< Cliente> que tenham um ou mais <filhos Contactname>:
child::Customer[child::ContactName]
Este exemplo assume que o <ContactName> é um elemento filho do <elemento Customer> no documento XML, o que é referido como mapeamento centrado no elemento num esquema XSD anotado.
Nesta expressão XPath, child é o nome do eixo.
Customer é o teste do nó (TRUE se Customer for um <nó elemento> , porque <elemento> é o tipo principal de nó para child eixo).
child::ContactName é o predicado. No predicado, child é o eixo e ContactName é o teste do nó (TRUE se ContactName for um <nó elemental> ).
Esta expressão devolve apenas os <filhos do elemento Cliente> do nó de contexto que têm <filhos do elemento ContactName> .
Usando a sintaxe abreviada, a consulta XPath pode também ser especificada como:
Customer[ContactName]
Predicado de seleção: Exemplo 4
A seguinte expressão XPath seleciona <filhos de elementos Cliente> do nó de contexto que não têm <filhos de elementos ContactName> :
child::Customer[not(child::ContactName)]
Este exemplo assume que <ContactName> é um elemento filho do <elemento Customer> no documento XML, e o campo ContactName não é obrigatório na base de dados.
Neste exemplo, child é o eixo.
Customer é o teste do nó (TRUE se Customer for um <nó elemental> ).
not(child::ContactName) é o predicado. No predicado, child é o eixo e ContactName é o teste do nó (TRUE se ContactName for um <nó elemental> ).
Usando a sintaxe abreviada, a consulta XPath pode também ser especificada como:
Customer[not(ContactName)]
Predicado de seleção: Exemplo 5
A expressão XPath seguinte seleciona do nó de contexto atual todos os <filhos do Cliente> que possuem o atributo CustomerID :
child::Customer[attribute::CustomerID]
Neste exemplo, child é o eixo e Customer é o teste do nó (TRUE se Customer for um <nó elemento> ).
attribute::CustomerID é o predicado. No predicado, attribute é o eixo e CustomerID é o predicado (TRUE se CustomerID for um <nó de atributo> ).
Usando a sintaxe abreviada, a consulta XPath pode também ser especificada como:
Customer[@CustomerID]
Predicado de Seleção: Exemplo 6
O Microsoft SQLXML 4.0 inclui suporte para consultas XPath que contêm um produto cruzado no predicado, como mostrado no exemplo seguinte:
Customer[Order/@OrderDate=Order/@ShipDate]
Esta consulta seleciona todos os clientes com qualquer Order para o qual o OrderDate é igual ao ShipDate de qualquer Order.
Ver também
Introdução aos Esquemas XSD Anotados (SQLXML 4.0)
Formatação XML do lado do cliente (SQLXML 4.0)