Condividi tramite


Specificazione di funzioni booleane nelle query XPath (SQLXML 4.0)

Negli esempi seguenti viene illustrato come vengono specificate le funzioni booleane nelle query XPath. Le query XPath in questi esempi vengono specificate sullo schema di mapping contenuto in SampleSchema1.xml. Per informazioni su questo schema di esempio, vedere Schema XSD con annotazioni di esempio per esempi XPath (SQLXML 4.0).

Esempi

Un. Specificare la funzione booleana not()

Questa query restituisce tutti gli <elementi figlio Customer> del nodo di contesto che non hanno <elementi figlio Order> :

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

L'asse child è l'impostazione predefinita. Di conseguenza, la query può essere specificata come:

/Customer[not(Order)]  

Per testare la query XPath sullo schema di mapping

  1. Copiare il codice dello schema di esempio e incollarlo in un file di testo. Salvare il file come SampleSchema1.xml.

  2. Creare il modello seguente (BooleanFunctionsA.xml) e salvarlo nella directory in cui SampleSchema1.xml viene salvato.

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

    Il percorso della directory specificato per lo schema di mapping (SampleSchema1.xml) è relativo alla directory in cui viene salvato il modello. È possibile specificare anche un percorso assoluto, ad esempio:

    mapping-schema="C:\MyDir\SampleSchema1.xml"  
    
  3. Creare e utilizzare lo script di test SQLXML 4.0 (Sqlxml4test.vbs) per eseguire il modello.

    Per altre informazioni, vedere Uso di ADO per eseguire query SQLXML 4.0.

Di seguito è riportato il set di risultati parziale dell'esecuzione del modello:

<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. Specificare le funzioni booleane true() e false()

Questa query restituisce tutti gli <elementi figlio dell'elemento Customer> del nodo di contesto che non dispongono <di elementi figlio Order> . In termini relazionali, questa query restituisce tutti i clienti che non hanno effettuato alcun ordine.

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

L'asse child è l'impostazione predefinita. Di conseguenza, la query può essere specificata come:

/Customer[Order=false()]  

La query equivale a quanto segue:

/Customer[not(Order)]  

La query seguente restituisce tutti i clienti che hanno effettuato almeno un ordine:

/Customer[Order=true()]  

Questa query equivale a questa:

/Customer[Order]  

Per testare la query XPath sullo schema di mapping

  1. Copiare il codice dello schema di esempio e incollarlo in un file di testo. Salvare il file come SampleSchema1.xml.

  2. Creare il modello seguente (BooleanFunctionsB.xml) e salvarlo nella directory in cui SampleSchema1.xml viene salvato.

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

    Il percorso della directory specificato per lo schema di mapping (SampleSchema1.xml) è relativo alla directory in cui viene salvato il modello. È possibile specificare anche un percorso assoluto, ad esempio:

    mapping-schema="C:\MyDir\SampleSchema1.xml"  
    
  3. Creare e utilizzare lo script di test SQLXML 4.0 (Sqlxml4test.vbs) per eseguire il modello.

    Per altre informazioni, vedere Uso di ADO per eseguire query SQLXML 4.0.

Di seguito è riportato il set di risultati parziale dell'esecuzione del modello:

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