Partilhar via


Especificando operadores aritméticos em consultas XPath (SQLXML 4.0)

O exemplo a seguir mostra como os operadores aritméticos são especificados em consultas XPath. A consulta XPath neste exemplo é especificada em relação ao esquema de mapeamento contido em SampleSchema1.xml. Para obter informações sobre esse esquema de exemplo, consulte Exemplo de esquema XSD anotado para exemplos XPath (SQLXML 4.0).

Exemplos

Um. Especificar o operador aritmético *

Esta consulta XPath retorna <elementos OrderDetail> que atendem ao predicado especificado:

/child::OrderDetail[@UnitPrice * @Quantity = 12.350]  

Na consulta, child é o eixo e OrderDetail é o teste de nó (TRUE se OrderDetail for um <nó> de elemento, pois o nó do <elemento> é o nó primário do child eixo). Para todos os nós de <elemento OrderDetail> , o teste no predicado é aplicado e somente os nós que atendem à condição são retornados.

Observação

Os números no XPath são números de ponto flutuante de precisão dupla e comparar números de ponto flutuante como no exemplo causa arredondamento.

Para testar a consulta XPath no esquema de mapeamento
  1. Copie o código de esquema de exemplo e cole-o em um arquivo de texto. Salve o arquivo como SampleSchema1.xml.

  2. Crie o modelo a seguir (ArithmeticOperatorA.xml) e salve-o no diretório em que SampleSchema1.xml é salvo.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        /OrderDetail[@UnitPrice * @OrderQty = 12.350]  
      </sql:xpath-query>  
    </ROOT>  
    

    O caminho do diretório especificado para o esquema de mapeamento (SampleSchema1.xml) é relativo ao diretório em que o modelo é salvo. Também é possível especificar um caminho absoluto, por exemplo:

    mapping-schema="C:\MyDir\SampleSchema1.xml"  
    
  3. Crie e use o script de teste SQLXML 4.0 (Sqlxml4test.vbs) para executar o modelo.

    Para obter mais informações, consulte Usar o ADO para executar consultas SQLXML 4.0.

Here is the partial result set of the template execution:    
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <OrderDetail ProductID="Prod-709" UnitPrice="6.175" OrderQty="2" UnitPriceDiscount="0" />   
  <OrderDetail ProductID="Prod-709" UnitPrice="6.175" OrderQty="2" UnitPriceDiscount="0" />   
  <OrderDetail ProductID="Prod-709" UnitPrice="6.175" OrderQty="2" UnitPriceDiscount="0" />   
  <OrderDetail ProductID="Prod-709" UnitPrice="6.175" OrderQty="2" UnitPriceDiscount="0" />   
  <OrderDetail ProductID="Prod-709" UnitPrice="6.175" OrderQty="2" UnitPriceDiscount="0" />   
  <OrderDetail ProductID="Prod-709" UnitPrice="6.175" OrderQty="2" UnitPriceDiscount="0" />   
  <OrderDetail ProductID="Prod-709" UnitPrice="6.175" OrderQty="2" UnitPriceDiscount="0" />   
  <OrderDetail ProductID="Prod-710" UnitPrice="6.175" OrderQty="2" UnitPriceDiscount="0" />   
   ...  
</ROOT>