Bagikan melalui


Menentukan Fungsi Konversi Eksplisit dalam Kueri XPath (SQLXML 4.0)

Berlaku untuk: SQL ServerAzure SQL Database

Contoh berikut menunjukkan bagaimana fungsi konversi eksplisit 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. Gunakan fungsi konversi eksplisit number()

Fungsi number() mengonversi argumen menjadi angka.

Dengan asumsi nilai ContactID nonnumerik, kueri berikut mengonversi ContactID menjadi angka dan membandingkannya dengan nilai 4. Kueri kemudian mengembalikan semua <turunan elemen Karyawan> dari simpul konteks dengan atribut ContactID yang memiliki nilai numerik 4:

/child::Contact[number(attribute::ContactID)= 4]  

Pintasan ke sumbu atribut (@) dapat ditentukan, dan karena sumbu anak adalah default, itu dapat dihilangkan dari kueri:

/Contact[number(@ContactID) = 4]  

Dalam istilah relasional, kueri mengembalikan karyawan dengan ContactID 4.

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 (ExplicitConversionA.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">  
        /Contact[number(@ContactID)=4]  
      </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.

Hasil yang ditetapkan untuk eksekusi templat ini adalah:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Contact ContactID="4" LastName="Acevedo" FirstName="Humberto" Title="Sr." />   
</ROOT>  

B. Menggunakan fungsi konversi eksplisit string()

Fungsi string() mengonversi argumen menjadi string.

Kueri berikut mengonversi ContactID menjadi string dan membandingkannya dengan nilai string "4". Kueri mengembalikan semua <turunan elemen Karyawan> dari simpul konteks dengan ContactID dengan nilai string "4":

/child::Contact[string(attribute::ContactID)="4"]  

Pintasan ke sumbu atribut (@) dapat ditentukan, dan karena sumbu anak adalah default, itu dapat dihilangkan dari kueri:

/Contact[string(@ContactID)="4"]  

Secara fungsional, kueri ini mengembalikan hasil yang sama dengan contoh kueri sebelumnya, meskipun evaluasi dilakukan terhadap nilai string dan bukan nilai numerik (yaitu, angka 4).

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 (ExplicitConversionB.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">  
        Contact[string(@ContactID)="4"]  
      </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 kumpulan hasil eksekusi templat:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Contact ContactID="4" LastName="Acevedo" FirstName="Humberto" Title="Sr." />   
</ROOT>