Spécification d'opérateurs arithmétiques dans des requêtes XPath (SQLXML 4.0)
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
A. Spécifier l'opérateur arithmétique *
Cette requête XPath retourne des é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 child). Pour tous les nœuds d'élément <OrderDetail>, le test spécifié 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
Copiez le code de l'exemple de schéma et collez-le dans un fichier texte. Enregistrez ce fichier sous le nom SampleSchema1.xml.
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"
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>