Partager via


Spécification de fonctions booléennes dans des requêtes XPath (SQLXML 4.0)

Les exemples suivants montrent comment les fonctions booléennes sont spécifiées dans les requêtes XPath. Les requêtes XPath de ces exemples sont spécifiées 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

Un. Spécifier la fonction booléenne not()

Cette requête retourne tous les <éléments enfants client> du nœud de contexte qui n’ont <pas d’éléments enfants Order> :

/child::Customer[not(child::Order)]  

L’axe child est la valeur par défaut. Par conséquent, la requête peut être spécifiée comme suit :

/Customer[not(Order)]  

Pour tester la requête XPath sur le schéma de mappage

  1. Copiez l’exemple de code de schéma et collez-le dans un fichier texte. Enregistrez le fichier en tant que SampleSchema1.xml.

  2. Créez le modèle suivant (BooleanFunctionsA.xml) et enregistrez-le dans le répertoire où SampleSchema1.xml est enregistré.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        Customer[not(Order)]  
    </sql:xpath-query>  
    </ROOT>  
    

    Le chemin d’accès au répertoire spécifié pour le schéma de mappage (SampleSchema1.xml) est relatif au répertoire dans lequel 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 partiel 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="32" SalesPersonID="289" TerritoryID="8" AccountNumber="32" CustomerType="S" />   
  <Customer CustomerID="35" SalesPersonID="275" TerritoryID="2" AccountNumber="35" CustomerType="S" />   
  ...  
</ROOT>  

B. Spécifier les fonctions booléennes true() et false()

Cette requête retourne tous les <enfants d’éléments Customer> du nœud de contexte qui n’ont <pas d’éléments enfants Order> . En termes relationnels, cette requête retourne tous les clients qui n’ont pas passé de commandes.

/child::Customer[child::Order=false()]  

L’axe child est la valeur par défaut. Par conséquent, la requête peut être spécifiée comme suit :

/Customer[Order=false()]  

Cette requête est équivalente à la suivante :

/Customer[not(Order)]  

La requête suivante retourne tous les clients qui ont passé au moins une commande :

/Customer[Order=true()]  

Cette requête équivaut à celle-ci :

/Customer[Order]  

Pour tester la requête XPath sur le schéma de mappage

  1. Copiez l’exemple de code de schéma et collez-le dans un fichier texte. Enregistrez le fichier en tant que SampleSchema1.xml.

  2. Créez le modèle suivant (BooleanFunctionsB.xml) et enregistrez-le dans le répertoire où SampleSchema1.xml est enregistré.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        /Customer[Order=false()]  
      </sql:xpath-query>  
    </ROOT>  
    

    Le chemin d’accès au répertoire spécifié pour le schéma de mappage (SampleSchema1.xml) est relatif au répertoire dans lequel 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 partiel 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="32" SalesPersonID="289" TerritoryID="8" AccountNumber="32" CustomerType="S" />   
  <Customer CustomerID="35" SalesPersonID="275" TerritoryID="2" AccountNumber="35" CustomerType="S" />   
  ...  
</ROOT>