Bagikan melalui


Menentukan Pengujian Node di Jalur Lokasi (SQLXML 4.0)

Pengujian simpul menentukan jenis node yang dipilih oleh langkah lokasi. Setiap sumbu (child, parent, attribute, atau self) memiliki jenis node utama. attribute Untuk sumbu, jenis node utama adalah <atribut> . parentUntuk sumbu , child, dan self , jenis node utama adalah <elemen> .

Nota

Pengujian simpul kartubebas * (misalnya, child::*) tidak didukung.

Tes Node: Contoh 1

Jalur child::Customer lokasi memilih turunan <elemen Pelanggan> dari simpul konteks.

Dalam contoh ini, child adalah sumbu dan Customer merupakan pengujian simpul. Jenis node utama untuk child sumbu adalah <elemen> . Oleh karena itu, pengujian node adalah TRUE jika node <Pelanggan> adalah <node elemen> . Jika simpul konteks tidak <memiliki anak Pelanggan> , sekumpulan simpul kosong dikembalikan.

Tes Node: Contoh 2

Jalur attribute::CustomerID lokasi memilih atribut CustomerID dari simpul konteks.

Dalam contoh, attribute adalah sumbu dan CustomerID merupakan pengujian simpul. Jenis node utama sumbu attribute adalah <atribut> . Oleh karena itu, pengujian node adalah TRUE jika CustomerID adalah node <atribut> . Jika simpul konteks tidak memiliki CustomerID, sekumpulan node kosong dikembalikan.

Nota

Dalam implementasi XPath ini, jika langkah lokasi mengacu pada <elemen> atau <jenis atribut> yang tidak dideklarasikan dalam skema, kesalahan dihasilkan. Ini berbeda dari implementasi XPath di MSXML, yang mengembalikan set simpul kosong.

Sintaks yang disingkat untuk Sumbu

Sintaksis singkatan berikut untuk jalur lokasi didukung:

  • attribute:: dapat disingkat ke @.

    Jalur Customer[@CustomerID="ALFKI"] lokasi sama child::Customer[attribute::CustomerID="ALFKI"]dengan .

  • child:: dapat dihilangkan dari langkah lokasi.

    Dengan demikian, child adalah sumbu default. Jalur Customer/Order lokasi sama child::Customer/child::Orderdengan .

  • self::node() dapat disingkat menjadi satu periode (.), dan parent::node() dapat disingkat menjadi dua periode (..).