Compartilhar via


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

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

Exemplos

A. Especifique o operador aritmético *.

Essa consulta XPath retorna elementos <OrderDetail> que satisfazem o 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ó de <elemento> é o nó principal para o eixo child). Para todos os nós de elemento <OrderDetail>, o teste no predicado é aplicado, e somente os nós que satisfazem a condição são retornados.

ObservaçãoObservação

Os números em XPath são números de pontos flutuantes de precisão dupla e a comparação de números de pontos flutuantes como no exemplo provoca arredondamento.

Para testar a consulta XPath com relação ao esquema de mapeamento

  1. Copie o código do esquema de exemplo e cole-o em um arquivo de texto. Salve o arquivo como SampleSchema1.xml.

  2. Crie o modelo a seguir (ArithmeticOperatorAe.xml) e salve-o no diretório em que SampleSchema1.xml foi 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 foi 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 Usando o ADO para executar consultas do 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>