Partager via


Spécification d'opérateurs booléens dans les requêtes XPath (SQLXML 4.0)

S’applique à : SQL ServerAzure SQL Database

L'exemple suivant montre comment les opérateurs booléens 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 booléen OR

Cette requête XPath retourne les enfants de l’élément <Customer> du nœud de contexte avec la valeur d’attribut CustomerID de 13 ou 31 :

/child::Customer[attribute::CustomerID="13" or attribute::CustomerID="31"]  

Un raccourci vers l’axe d’attribut (@) peut être spécifié et, étant donné que l’axe enfant est la valeur par défaut, il peut être omis :

/Customer[@CustomerID="13" or @CustomerID="31"]  

Dans le prédicat, attribute est l’axe et CustomerID est le test de nœud (TRUE si CustomerID est un nœud d’attribut<>, car le< nœud d’attribut est le nœud principal de l’axe d’attribut).> Le prédicat filtre les <éléments Customer> et retourne uniquement ceux qui répondent à la condition spécifiée dans le prédicat.

Pour tester les requêtes 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 ci-après (BooleanOperatorsA.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">  
        /Customer[@CustomerID="13" or @CustomerID="31"]  
      </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, voir Utilisation d'ADO pour exécuter des requêtes SQLXML 4.0.

Voici le jeu de résultats de l'exécution du modèle :

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Customer CustomerID="13" SalesPersonID="286" TerritoryID="7" AccountNumber="13" CustomerType="S" />   
  <Customer CustomerID="31" SalesPersonID="286" TerritoryID="7" AccountNumber="31" CustomerType="S" Orders="Ord-51803 Ord-69427">  
    <Order SalesOrderID="Ord-51803" SalesPersonID="286" OrderDate="2003-08-01T00:00:00" DueDate="2003-08-13T00:00:00" ShipDate="2003-08-08T00:00:00">  
      <OrderDetail ProductID="Prod-718" UnitPrice="1059.31" OrderQty="1" UnitPriceDiscount="0" />   
      <OrderDetail ProductID="Prod-838" UnitPrice="1059.31" OrderQty="1" UnitPriceDiscount="0" />   
    </Order>  
    <Order SalesOrderID="Ord-69427" SalesPersonID="286" OrderDate="2004-05-01T00:00:00" DueDate="2004-05-13T00:00:00" ShipDate="2004-05-08T00:00:00">  
      <OrderDetail ProductID="Prod-835" UnitPrice="440.1742" OrderQty="1" UnitPriceDiscount="0" />   
    </Order>  
  </Customer>  
</ROOT>