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
Os exemplos seguintes mostram como os operadores relacionais são especificados nas consultas XPath. As consultas XPath nestes exemplos são especificadas contra o esquema de mapeamento contido em SampleSchema1.xml. Para informações sobre este esquema de exemplo, consulte Esquema XSD Anotado de Exemplo para Exemplos XPath (SQLXML 4.0).
Examples
A. Especificar operador relacional
Esta consulta XPath devolve os elementos filhos do <elemento Cliente> onde o valor do atributo CustomerID é "1" e onde quaisquer elementos de Ordem> filho< contêm um <filho OrderDetail> com um atributo OrderQty com valor superior a 3:
/child::Customer[@CustomerID="1"]/Order/OrderDetail[@OrderQty > 3]
O predicado especificado entre parênteses filtra os <elementos do Cliente> . Apenas os <elementos Customer> que tenham pelo menos um <neto OrderDetail> com valor de atributo OrderQty superior a 3 são devolvidos.
O eixo filho é o padrão. Portanto, a consulta pode ser especificada como:
/Customer[@CustomerID="1"]/Order/OrderDetail[@OrderQty > 3]
Para testar a consulta XPath contra o esquema de mapeamento
Copie o código de esquema de exemplo e cole-o num ficheiro de texto. Guarde o ficheiro como SampleSchema1.xml.
Crie o seguinte modelo (SpecifyRelationalA.xml) e guarde-o no diretório onde SampleSchema1.xml está guardado.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema1.xml"> /Customer[@CustomerID="1"]/Order/OrderDetail[@OrderQty > 3] </sql:xpath-query> </ROOT>O caminho do diretório especificado para o esquema de mapeamento (SampleSchema1.xml) é relativo ao diretório onde o modelo é guardado. Um caminho absoluto também pode ser especificado, por exemplo:
mapping-schema="C:\MyDir\SampleSchema1.xml"Crie e use o Script de Teste SQLXML 4.0 (Sqlxml4test.vbs) para executar o modelo.
Para obter mais informações, consulte Usando o ADO para executar consultas SQLXML 4.0.
Aqui está o conjunto de resultados da execução do modelo:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<OrderDetail ProductID="Prod-760" UnitPrice="503.3507" OrderQty="4" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-763" UnitPrice="503.3507" OrderQty="4" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-766" UnitPrice="503.3507" OrderQty="4" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-732" UnitPrice="440.1742" OrderQty="4" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-757" UnitPrice="1049.7528" OrderQty="4" UnitPriceDiscount="0" />
</ROOT>
B. Especifique o operador relacional na consulta XPath e use a função Booleana para comparar o resultado
Esta consulta devolve todos os filhos <do elemento Order> do nó de contexto que tenham um valor de atributo SalesPersonID inferior a 270:
/child::Customer/child::Order[(attribute::SalesPersonID < 270)=true()]
Pode ser especificado um atalho para o eixo do atributo (@) e, como o eixo filho é o predefinido, pode ser omitido da consulta:
/Customer/Order[(@SalesPersonID < 270)=true()]
Observação
Quando esta consulta é especificada num modelo, o < carácter deve ser codificado por entidade porque tem < um significado especial num documento XML. Num modelo, use < para especificar a < personagem.
Para testar a consulta XPath contra o esquema de mapeamento
Copie o código de esquema de exemplo e cole-o num ficheiro de texto. Guarde o ficheiro como SampleSchema1.xml.
Crie o seguinte modelo (SpecifyRelationalB.xml) e guarde-o no diretório onde SampleSchema1.xml está guardado.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema1.xml"> /Customer/Order[(@SalesPersonID<270)=true()] </sql:xpath-query> </ROOT>O caminho do diretório especificado para o esquema de mapeamento (SampleSchema1.xml) é relativo ao diretório onde o modelo é guardado. Um caminho absoluto também pode ser especificado, por exemplo:
mapping-schema="C:\MyDir\SampleSchema1.xml"Crie e use o Script de Teste SQLXML 4.0 (Sqlxml4test.vbs) para executar o modelo.
Para obter mais informações, consulte Usando o ADO para executar consultas SQLXML 4.0.
Aqui está o conjunto parcial de resultados da execução do modelo:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Order SalesOrderID="Ord-46613" SalesPersonID="268"
OrderDate="2002-07-01T00:00:00"
DueDate="2002-07-13T00:00:00"
ShipDate="2002-07-08T00:00:00">
<OrderDetail ProductID="Prod-739" UnitPrice="917.9363"
OrderQty="2" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-779" UnitPrice="1491.4221"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-825" UnitPrice="242.1391"
OrderQty="1" UnitPriceDiscount="0" />
</Order>
<Order SalesOrderID="Ord-71919" SalesPersonID="268"
OrderDate="2004-06-01T00:00:00"
DueDate="2004-06-13T00:00:00"
ShipDate="2004-06-08T00:00:00">
<OrderDetail ProductID="Prod-961" UnitPrice="534.492"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-965" UnitPrice="534.492"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-966" UnitPrice="1716.5304"
OrderQty="1" UnitPriceDiscount="0" />
</Order>
...
</ROOT>