Condividi tramite


Specificare gli operatori booleani nelle query XPath (SQLXML 4.0)

Nell'esempio seguente viene illustrato come vengono specificati gli operatori booleani nelle query XPath. La query XPath in questo esempio viene specificata 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 l'operatore BOoleano OR

Questa query XPath restituisce gli elementi figlio dell'elemento< Customer> del nodo di contesto con il valore dell'attributo CustomerID pari a 13 o 31:

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

È possibile specificare un collegamento all'asse attribute (@) e, poiché l'asse è l'impostazione child predefinita, può essere omesso:

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

Nel predicato è attribute l'asse e CustomerID è il test del nodo (TRUE se CustomerID è un <nodo attributo, perché il nodo dell'attributo>>è il nodo primario per l'asse).<attribute Il predicato filtra gli <elementi Customer> e restituisce solo quelli che soddisfano la condizione specificata nel predicato.

Per testare le 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 (BooleanOperatorsA.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[@CustomerID="13" or @CustomerID="31"]  
      </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 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="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>