Tutorial Cara Menggunakan XQuery – W3C XQuery adalah bahasa kueri untuk XML. Kasus penggunaan paling umum untuk XQuery melibatkan penerbitan XML untuk membuat pesan XML untuk Web, situs web dinamis, atau aplikasi penerbitan. Data asli dapat ditemukan dalam file XML, atau mungkin dalam penyimpanan data seperti database relasional.
Tutorial Cara Menggunakan XQuery
zorba-xquery – Beberapa kueri dalam tutorial ini beroperasi pada XML yang disimpan dalam file, beberapa pada tampilan XML dari database relasional, dan beberapa bekerja pada keduanya. Semua contoh dalam tutorial ini telah diuji dengan DataDirect XQuery.
Baca Juga : Memfilter Kolom XML Menggunakan XQuery di SQL Server
Karena semua implementasi XQuery tidak mengakses data relasional dengan cara yang sama, tutorial ini menggunakan fn:collection(), yang digunakan DataDirect XQuery untuk mengakses tabel relasional.
Sebagian besar fungsi XQuery, seperti operator aritmatika, perbandingan, panggilan fungsi, dan fungsi, akrab bagi sebagian besar programmer. Tutorial ini berfokus pada tiga kemampuan utama XQuery yang membuatnya berbeda, dan yang mendasar untuk memproses dan membuat XML.
- Ekspresi jalur, yang dapat menemukan apa pun dalam dokumen XML.
- Konstruktor XML, yang dapat membuat dokumen XML apa pun.
- Ekspresi FLWOR (diucapkan “ekspresi bunga”), yang memungkinkan data digabungkan untuk membuat struktur XML baru. Mereka mirip dengan pernyataan SQL Select yang memiliki klausa From dan Where, tetapi disesuaikan untuk pemrosesan XML.
Bersama-sama, kemampuan ini mempermudah pemrosesan dan pembuatan XML dengan XQuery dibandingkan dengan bahasa lain saat menggunakan data dari XML atau sumber relasional.
Ringkasan
Tiga kemampuan utama XQuery yang membuatnya berbeda adalah kemampuan untuk:
- Temukan konten apa pun dalam dokumen XML
- Buat dokumen XML apa pun
- Gabungkan data untuk membuat struktur XML baru menggunakan ekspresi FLWOR
DataDirect XQuery, sebuah implementasi dari XQuery, memungkinkan Anda untuk mengkueri sumber relasional dan XML dan menggabungkan data menjadi satu hasil.
Menemukan Node XML: Ekspresi Jalur
Sama seperti SQL harus dapat mengakses setiap baris atau kolom dalam tabel relasional, XQuery harus dapat mengakses setiap node dalam dokumen XML. Struktur XML memiliki hierarki dan urutan, dan dapat berisi struktur kompleks.
Ekspresi jalur secara langsung mendukung hierarki dan urutan, dan memungkinkan Anda menavigasi struktur XML apa pun. Di bagian ini, kita membahas ekspresi jalur menggunakan dokumen XML, lalu memperlihatkan ekspresi jalur yang digunakan pada tampilan XML tabel relasional.
Ekspresi Jalur untuk Sumber Relasional
Ketika XQuery digunakan untuk mengkueri data relasional, tabel relasional diperlakukan seolah-olah mereka adalah dokumen XML, dan ekspresi jalur bekerja dengan cara yang sama seperti yang mereka lakukan untuk XML. Karena tabel relasional memiliki struktur yang sederhana, ekspresi jalur yang digunakan untuk tabel biasanya sederhana.
Tidak ada cara standar untuk mengakses tabel relasional di XQuery, jadi setiap implementasi XQuery memiliki caranya sendiri untuk melakukan ini. Di DataDirect XQuery, kami menggunakan fn:collection() untuk mengakses tabel relasional. Misalnya, ekspresi berikut mengakses tabel holding.
collection(‘holdings’)
Setiap implementasi XQuery juga harus memutuskan bagaimana memetakan tabel relasional ke dalam XML dalam tampilan XML. Standar SQL 2003 telah menetapkan satu set standar pemetaan untuk tujuan ini sebagai bagian dari SQL/XML.
Berikut adalah pemetaan SQL/XML dari tabel kepemilikan; pemetaan ini mewakili setiap baris sebagai elemen kepemilikan, dan mewakili setiap kolom tabel (userid, stockticker, saham) sebagai elemen yang merupakan anak dari elemen kepemilikan.
<holdings>
<userid>Jonathan</userid>
<stockticker>AMZN</stockticker>
<shares>3000</shares>
</holdings>
…
<holdings>
<userid>Minollo</userid>
<stockticker>AMZN</stockticker>
<shares>3000</shares>
</holdings>
…
Setelah Anda memahami struktur tampilan XML, Anda dapat dengan mudah melihat bagaimana ekspresi jalur diterapkan padanya. Misalnya, ekspresi berikut menemukan kepemilikan untuk pengguna yang userid-nya adalah “Minollo”.
collection(‘holdings’)/holdings[userid=’Minollo’]
Karena data relasional ditanyakan seolah-olah itu XML, beberapa orang berpikir bahwa tabel relasional sebenarnya diekstraksi dari database, diubah menjadi dokumen XML, dan kemudian ditanyakan, tetapi ini akan sangat tidak efisien. Bagi pengguna, DataDirect XQuery membuat semua data terlihat seperti XML, tetapi untuk database SQL, implementasinya menggunakan SQL. Sebelum mengevaluasi ekspresi sebelumnya, DataDirect XQuery mengonversinya menjadi ekspresi SQL yang mirip dengan ini:
SELECT userid, stockticker, shares
FROM holdings
WHERE userid=’Minollo’
Membuat XML: Konstruktor XML
Sekarang kita telah melihat bagaimana menemukan sesuatu dalam dokumen XML atau tabel relasional, mari kita pelajari cara membuat struktur XML baru menggunakan konstruktor XML.
Konstruktor XML literal
Konstruktor paling sederhana adalah konstruktor XML literal , yang menggunakan sintaks yang sama dengan XML. Misalnya, teks XML berikut juga merupakan ekspresi XQuery yang membuat struktur XML yang setara.
<stock role=’eg’>
<ticker>AMZN</ticker>
<shares>3000</shares>
</stock>
Contoh ini hanya menggunakan elemen dan atribut, tetapi instruksi pemrosesan, komentar, dan bagian CDATA juga dapat digunakan dalam konstruktor XML.
Ekspresi Terlampir
Dalam konstruktor XML literal, Anda bisa menggunakan kurung kurawal ({}) untuk menambahkan konten yang dihitung saat kueri dijalankan. Ini disebut ekspresi tertutup . Misalnya, ekspresi berikut membuat elemen tanggal yang isinya adalah tanggal saat ini, yang dihitung saat kueri dijalankan.
<date>{ current-date() }</date>
Hasilnya akan menjadi elemen bernama tanggal dengan tanggal saat ini. Untuk melihat mengapa ekspresi tertutup diperlukan, pertimbangkan ekspresi berikut:
<date> current-date() </date>
Ekspresi ini dievaluasi ke elemen XML berikut:
<date> current-date() </date>
Ekspresi jalur sering digunakan dalam ekspresi tertutup. Ekspresi berikut membuat elemen portofolio untuk Minollo, lalu mengekstrak kepemilikan Minollo dari tabel kepemilikan.
<portfolio name=’Minollo’>
{ collection(‘holdings’)/holdings[userid=’Minollo’] }
</portfolio>
Contoh Ikhtisar
Dokumen berikut menjelaskan cara menginstal, mengonfigurasi, dan menjalankan contoh DataDirect XQuery®. Unduh contoh gratis hari ini dan pelajari betapa mudahnya mengintegrasikan, membuat kueri, dan memublikasikan sumber data heterogen menggunakan DataDirect XQuery®.
designPreviewDemo.zip : Berisi semua file contoh, termasuk file XQuery, Skema XML, lembar gaya XSLT, file Database, dan file proyek Stylus Studio yang diperlukan untuk menjalankan contoh XQuery.