Spécification d'opérateurs arithmétiques dans des requêtes XPath (SQLXML 4.0)

S’applique à :yesSQL Server (toutes les versions prises en charge) YesAzure SQL Database

L'exemple suivant montre comment les opérateurs arithmétiques sont spécifiés dans les requêtes XPath. La requête XPath de cet exemple est spécifiée par rapport au schéma de mappage contenu dans SampleSchema1.xml. Pour plus d’informations sur cet exemple de schéma, consultez Exemple de schéma XSD annoté pour les exemples XPath (SQLXML 4.0).

Exemples

R. Spécifier l'opérateur arithmétique *

Cette requête XPath retourne <les éléments OrderDetail> qui répondent au prédicat spécifié :

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

Dans la requête, child est l’axe et OrderDetail est le test de nœud (TRUE si OrderDetail est un nœud> d’élément<, car le <nœud d’élément> est le nœud principal de l’axe enfant). Pour tous les <nœuds d’élément OrderDetail> , le test dans le prédicat est appliqué, et seuls les nœuds qui répondent à la condition sont retournés.

Notes

Dans XPath, les nombres sont des nombres à virgule flottante double précision et la comparaison de nombres à virgule flottante comme dans l'exemple entraîne un arrondi.

Pour tester la requête XPath par rapport au schéma de mappage
  1. Copiez l’exemple de code de schéma et collez-le dans un fichier texte. Enregistrez ce fichier sous le nom SampleSchema1.xml.

  2. Créez le modèle suivant (ArithmeticOperatorA.xml) et enregistrez-le dans le même répertoire que SampleSchema1.xml.

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

    Le chemin d'accès au répertoire spécifié pour le schéma de mappage (SampleSchema1.xml) varie en fonction du répertoire où le modèle est enregistré. Vous pouvez également spécifier un chemin d'accès absolu, par exemple :

    mapping-schema="C:\MyDir\SampleSchema1.xml"  
    
  3. Créez et utilisez le script de test SQLXML 4.0 (Sqlxml4test.vbs) pour exécuter le modèle.

    Pour plus d’informations, consultez Utilisation d’ADO pour exécuter des requêtes 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>