Bagikan melalui


Menentukan Fungsi Boolean dalam Kueri XPath (SQLXML 4.0)

Berlaku untuk: SQL ServerAzure SQL Database

Contoh berikut menunjukkan bagaimana fungsi Boolean ditentukan dalam kueri XPath. Kueri XPath dalam contoh ini ditentukan terhadap skema pemetaan yang terkandung dalam SampleSchema1.xml. Untuk informasi tentang skema sampel ini, lihat Contoh Skema XSD Anotasi untuk Contoh XPath (SQLXML 4.0).

Contoh

J. Tentukan fungsi not() Boolean

Kueri ini mengembalikan semua <elemen anak Pelanggan> dari simpul konteks yang tidak memiliki <elemen Anak pesanan> :

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

Sumbu anak adalah default. Oleh karena itu, kueri dapat ditentukan sebagai:

/Customer[not(Order)]  

Untuk menguji kueri XPath terhadap skema pemetaan

  1. Salin kode skema sampel dan tempelkan ke dalam file teks. Simpan file sebagai SampleSchema1.xml.

  2. Buat templat berikut (BooleanFunctionsA.xml) dan simpan di direktori tempat SampleSchema1.xml disimpan.

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

    Jalur direktori yang ditentukan untuk skema pemetaan (SampleSchema1.xml) relatif terhadap direktori tempat templat disimpan. Jalur absolut juga dapat ditentukan, misalnya:

    mapping-schema="C:\MyDir\SampleSchema1.xml"  
    
  3. Buat dan gunakan Skrip Pengujian SQLXML 4.0 (Sqlxml4test.vbs) untuk menjalankan templat.

    Untuk informasi selengkapnya, lihat Menggunakan ADO untuk Menjalankan Kueri SQLXML 4.0.

Berikut adalah rangkaian hasil parsial dari eksekusi templat:

<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. Tentukan fungsi Boolean true() dan false()

Kueri ini mengembalikan semua <turunan elemen Pelanggan> dari simpul konteks yang tidak memiliki <elemen Order> child. Dalam istilah relasional, kueri ini mengembalikan semua pelanggan yang belum melakukan pesanan apa pun.

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

Sumbu anak adalah default. Oleh karena itu, kueri dapat ditentukan sebagai:

/Customer[Order=false()]  

Kueri ini setara dengan yang berikut ini:

/Customer[not(Order)]  

Kueri berikut mengembalikan semua pelanggan yang telah melakukan setidaknya satu pesanan:

/Customer[Order=true()]  

Kueri ini setara dengan kueri ini:

/Customer[Order]  

Untuk menguji kueri XPath terhadap skema pemetaan

  1. Salin kode skema sampel dan tempelkan ke dalam file teks. Simpan file sebagai SampleSchema1.xml.

  2. Buat templat berikut (BooleanFunctionsB.xml) dan simpan di direktori tempat SampleSchema1.xml disimpan.

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

    Jalur direktori yang ditentukan untuk skema pemetaan (SampleSchema1.xml) relatif terhadap direktori tempat templat disimpan. Jalur absolut juga dapat ditentukan, misalnya:

    mapping-schema="C:\MyDir\SampleSchema1.xml"  
    
  3. Buat dan gunakan Skrip Pengujian SQLXML 4.0 (Sqlxml4test.vbs) untuk menjalankan templat.

    Untuk informasi selengkapnya, lihat Menggunakan ADO untuk Menjalankan Kueri SQLXML 4.0.

Berikut adalah rangkaian hasil parsial dari eksekusi templat:

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