Sdílet prostřednictvím


Specifikace aritmetických operátorů v XPath dotazech (SQLXML 4.0)

platí pro:SQL Serverazure SQL Database

Následující příklad ukazuje, jak jsou aritmetické operátory specifikovány v dotazech XPath. Dotaz XPath v tomto příkladu je specifikován proti mapovacímu schématu obsaženému v SampleSchema1.xml. Pro informace o tomto ukázkovém schématu viz Ukázka anotovaného XSD schématu pro příklady XPath (SQLXML 4.0).

Examples

A. Specifikujte aritmetický operátor *

Tento dotaz XPath vrací <prvky OrderDetail> , které splňují zadaný predikát:

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

V dotazu child je osa a OrderDetail je test uzlu (PRAVDA, pokud je OrderDetailuzelem<> prvku, protože uzel <prvku> je primárním uzlem pro podosu). Pro všechny uzly prvku OrderDetail> se aplikuje test v predikátu a vrátí se pouze ty uzly, které splňují podmínku.<

Poznámka:

Čísla v XPathu jsou dvojnásobně přesná čísla s plovoucí desetinnou čárkou a porovnání čísel s plovoucí desetinnou čárkou, jak je uvedeno v příkladu, způsobuje zaokrouhlování.

Otestování dotazu XPath proti mapovacímu schématu
  1. Zkopírujte ukázkový kód schématu a vložte ho do textového souboru. Uložte soubor jako SampleSchema1.xml.

  2. Vytvořte následující šablonu (ArithmeticOperatorA.xml) a uložite ji do adresáře, kde se SampleSchema1.xml ukládá.

    <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>  
    

    Adresářová cesta určená pro mapovací schéma (SampleSchema1.xml) je relativní k adresáři, ve kterém je šablona uložena. Absolutní cestu lze také specifikovat, například:

    mapping-schema="C:\MyDir\SampleSchema1.xml"  
    
  3. Vytvořte a použijte testovací skript SQLXML 4.0 (Sqlxml4test.vbs) k provedení šablony.

    Další informace naleznete v tématu Použití ADO ke spouštění dotazů 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>