Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Negli esempi seguenti viene illustrato come vengono specificati gli operatori relazionali 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 l'operatore relazionale
Questa query XPath restituisce gli elementi figlio dell'elemento Customer> in cui il valore dell'attributo<CustomerID è "1" e dove qualsiasi elemento Order> figlio contiene un elemento figlio<OrderDetail> con un attributo OrderQty con un valore maggiore di 3:<
/child::Customer[@CustomerID="1"]/Order/OrderDetail[@OrderQty > 3]
Il predicato specificato tra parentesi quadre filtra gli <elementi Customer> . Vengono restituiti solo gli <elementi Customer> con almeno un <nipote OrderDetail> con un valore di attributo OrderQty maggiore di 3.
L'asse child è l'impostazione predefinita. Di conseguenza, la query può essere specificata come:
/Customer[@CustomerID="1"]/Order/OrderDetail[@OrderQty > 3]
Per testare la query XPath sullo schema di mapping
Copiare il codice dello schema di esempio e incollarlo in un file di testo. Salvare il file come SampleSchema1.xml.
Creare il modello seguente (SpecifyRelationalA.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="1"]/Order/OrderDetail[@OrderQty > 3] </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"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">
<OrderDetail ProductID="Prod-760" UnitPrice="503.3507" OrderQty="4" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-763" UnitPrice="503.3507" OrderQty="4" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-766" UnitPrice="503.3507" OrderQty="4" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-732" UnitPrice="440.1742" OrderQty="4" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-757" UnitPrice="1049.7528" OrderQty="4" UnitPriceDiscount="0" />
</ROOT>
B. Specificare l'operatore relazionale nella query XPath e usare la funzione booleana per confrontare il risultato
Questa query restituisce tutti gli elementi figlio dell'elemento <Order> del nodo di contesto con un valore di attributo SalesPersonID minore di 270:
/child::Customer/child::Order[(attribute::SalesPersonID < 270)=true()]
È possibile specificare un collegamento all'asse attribute (@) e, poiché l'asse è l'impostazione child predefinita, può essere omesso dalla query:
/Customer/Order[(@SalesPersonID < 270)=true()]
Annotazioni
Quando questa query viene specificata in un modello, il < carattere deve essere codificato in quanto il < carattere ha un significato speciale in un documento XML. In un modello usare < per specificare il < carattere.
Per testare la query XPath sullo schema di mapping
Copiare il codice dello schema di esempio e incollarlo in un file di testo. Salvare il file come SampleSchema1.xml.
Creare il modello seguente (SpecifyRelationalB.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[(@SalesPersonID<270)=true()] </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"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">
<Order SalesOrderID="Ord-46613" SalesPersonID="268"
OrderDate="2002-07-01T00:00:00"
DueDate="2002-07-13T00:00:00"
ShipDate="2002-07-08T00:00:00">
<OrderDetail ProductID="Prod-739" UnitPrice="917.9363"
OrderQty="2" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-779" UnitPrice="1491.4221"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-825" UnitPrice="242.1391"
OrderQty="1" UnitPriceDiscount="0" />
</Order>
<Order SalesOrderID="Ord-71919" SalesPersonID="268"
OrderDate="2004-06-01T00:00:00"
DueDate="2004-06-13T00:00:00"
ShipDate="2004-06-08T00:00:00">
<OrderDetail ProductID="Prod-961" UnitPrice="534.492"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-965" UnitPrice="534.492"
OrderQty="1" UnitPriceDiscount="0" />
<OrderDetail ProductID="Prod-966" UnitPrice="1716.5304"
OrderQty="1" UnitPriceDiscount="0" />
</Order>
...
</ROOT>