Pengantar
zorba-xquery – Tutorial XQuery ini untuk semua orang yang benar-benar ingin tahu apa itu XQuery, tetapi tidak punya waktu untuk mencari tahu. Kita semua tahu masalahnya: begitu banyak teknologi baru yang menarik, begitu sedikit waktu untuk menelitinya. Sejujurnya, saya harap Anda akan menghabiskan lebih dari sepuluh menit untuk tutorial XQuery ini — tetapi jika Anda benar-benar harus segera meninggalkannya, saya harap Anda tetap mempelajari sesuatu yang bermanfaat.
Mari Kita Mempelajari XQuery Lebih Dalam Lagi
– Untuk Apa XQuery?
Mari Kita Mempelajari XQuery Lebih Dalam Lagi – XQuery dirancang terutama sebagai bahasa kueri untuk data yang disimpan dalam bentuk XML. Jadi peran utamanya adalah untuk mendapatkan informasi dari database XML — ini termasuk database relasional yang menyimpan data XML, atau yang menyajikan tampilan XML dari data yang mereka pegang. Beberapa orang juga menggunakan XQuery untuk memanipulasi dokumen XML yang berdiri sendiri, misalnya, untuk mengubah pesan yang lewat di antara aplikasi. Dalam peran itu XQuery bersaing langsung dengan XSLT, dan bahasa mana yang Anda pilih sebagian besar merupakan masalah preferensi pribadi. Faktanya, beberapa orang sangat menyukai XQuery sehingga mereka bahkan menggunakannya untuk merender XML menjadi HTML untuk presentasi. Itu bukan benar-benar pekerjaan yang dirancang untuk XQuery, dan saya tidak akan merekomendasikan orang untuk melakukan itu, tetapi begitu Anda mengenal alat, Anda cenderung menemukan cara baru untuk menggunakannya.
– Bermain dengan XQuery
Cara terbaik untuk belajar tentang apa pun adalah dengan mencobanya sendiri. Dua cara Anda dapat mencoba contoh XQuery dalam artikel ini adalah:
Instal Stylus Studio – Lalu buka File > New > XQuery File… dan Anda dapat mulai membuat kueri di panel editor. (Di Stylus Studio, Anda juga dapat menggunakan XQuery mapper visual untuk membuat kueri Anda secara grafis. Jika Anda menyukai pendekatan itu, silakan. Tapi saya akan berkonsentrasi di sini pada sintaks bahasa yang sebenarnya.)
Unduh DataDirect XQuery – komponen pemrosesan XQuery berbasis Java untuk kueri data relasional, file XML, dan data non-XML menggunakan XQuery.
Baca Juga : Oracle Exec Lobi Untuk ‘Zorba’ Open-Source XQuery Engine
– XQuery Pertama Anda
Untuk yang satu itu, tentunya jarak tempuh bisa berbeda-beda. Ketepatan nilai waktu (fraksi detik) bergantung pada prosesor XQuery yang Anda gunakan, dan zona waktu (5 jam sebelum GMT dalam kasus ini) bergantung pada bagaimana sistem Anda dikonfigurasi. Tak satu pun dari ini adalah pertanyaan yang sangat berguna, tentu saja, dan apa yang mereka tunjukkan bukanlah ilmu roket. Tetapi dalam bahasa kueri, Anda harus dapat melakukan sedikit perhitungan, dan XQuery telah membahasnya. Lebih lanjut, XQuery dirancang sedemikian rupa sehingga ekspresi sepenuhnya dapat disarang — ekspresi apa pun dapat digunakan dalam ekspresi lain apa pun, asalkan memberikan nilai tipe yang tepat — dan ini berarti bahwa ekspresi yang terutama ditujukan untuk memilih data dalam klausa where juga dapat digunakan sebagai kueri yang berdiri sendiri dalam hak mereka sendiri.
– Mengakses Dokumen XML dengan XQuery
Meskipun mampu menangani tugas-tugas biasa seperti yang dijelaskan di bagian sebelumnya, XQuery dirancang untuk mengakses data XML. Jadi mari kita lihat beberapa kueri sederhana yang memerlukan dokumen XML sebagai inputnya. Dokumen sumber yang akan kita gunakan disebut videos.xml.
Ada juga salinan file contoh ini di Web. XQuery memungkinkan Anda untuk mengakses file secara langsung dari salah satu lokasi ini, menggunakan URL yang sesuai sebagai argumen untuk fungsi doc() nya. Inilah XQuery yang hanya mengambil dan menampilkan seluruh dokumen:
Fungsi yang sama dapat digunakan untuk mendapatkan salinan dari Web:
(Ini hanya akan berfungsi jika Anda online, tentu saja; dan jika Anda berada di belakang firewall perusahaan, Anda mungkin harus melakukan beberapa penyesuaian pada konfigurasi Java Anda untuk membuatnya berfungsi.)
URL tersebut agak berat, tetapi ada pintasan yang dapat Anda gunakan:
Jika Anda bekerja di Stylus Studio, klik XQuery / Scenario Properties, dan di bawah Main Input (opsional), telusuri file input dan pilih. Anda sekarang dapat merujuk ke dokumen ini dalam kueri Anda hanya sebagai “.” (dot). Jika Anda bekerja langsung dengan DataDirect XQuery, saya sarankan Anda menyalin file ke suatu tempat lokal, misalnya c:\query\videos.xml, dan bekerja dengannya dari lokasi itu. Gunakan opsi baris perintah -s c:\query\videos.xml dan Anda akan kembali dapat merujuk ke dokumen dalam kueri Anda sebagai “.
File berisi sejumlah bagian. Salah satunya adalah elemen <aktor>, yang bisa kita pilih seperti ini:
Itu adalah pertanyaan “nyata” pertama kami. Jika Anda terbiasa dengan XPath, Anda mungkin mengenali bahwa semua kueri sejauh ini adalah ekspresi XPath yang valid. Kami telah menggunakan beberapa fungsi — current-time() dan doc() — yang mungkin asing karena mereka baru di XPath 2.0, yang masih berupa draft; tetapi sintaks dari semua kueri sejauh ini adalah sintaks XPath biasa. Faktanya, bahasa XQuery dirancang agar setiap ekspresi XPath yang valid juga merupakan kueri XQuery yang valid.
yang memberikan output:
Sistem yang berbeda mungkin menampilkan output ini dengan cara yang berbeda. Secara teknis, hasil kueri ini adalah urutan dua simpul elemen dalam representasi pohon dari dokumen XML sumber, dan ada banyak cara yang mungkin dipilih sistem untuk menampilkan urutan seperti itu di layar. Stylus Studio memberi Anda pilihan tampilan teks dan tampilan hierarki: Anda menggunakan tombol di sebelah jendela Pratinjau untuk beralih dari satu ke yang lain.
Contoh ini menggunakan fungsi lain — end-with() — yang baru di XPath 2.0. Kami menyebutnya di dalam predikat (ekspresi antara tanda kurung siku), yang mendefinisikan kondisi yang harus dipenuhi oleh node agar dapat dipilih. Ekspresi XPath ini memiliki dua bagian: jalur .//actors/actor yang menunjukkan elemen mana yang kita minati, dan predikat [berakhir-dengan(., ‘Lisa’)] yang menunjukkan pengujian yang harus dipenuhi oleh node. Predikat dievaluasi sekali untuk setiap elemen yang dipilih; dalam predikat, ekspresi “.” (titik) mengacu pada simpul yang sedang diuji predikatnya, yaitu aktor yang dipilih.
Tanda “/” di jalur informal berarti “turun satu tingkat”, sedangkan “//” berarti “turun berapa pun tingkatnya”. Jika jalur dimulai dengan “./” atau “.//” Anda dapat mengabaikan inisial “.” (ini mengasumsikan bahwa pemilihan dimulai dari atas pohon, yang selalu terjadi dalam contoh kita). Anda juga dapat menggunakan konstruksi seperti “/..” untuk naik satu tingkat, dan “/@id” untuk memilih atribut. Sekali lagi, ini semua akan akrab jika Anda sudah tahu XPath. XPath mampu melakukan beberapa pilihan yang cukup kuat, dan sebelum kita beralih ke XQuery yang tepat, mari kita lihat contoh yang lebih kompleks. Misalkan kita ingin mencari judul semua video yang menampilkan aktor bernama depan Lisa. Setiap video dalam file diwakili oleh elemen video seperti ini: Banyak orang menemukan bahwa pada tingkat kerumitan ini, sintaks XPath menjadi agak membingungkan. Faktanya, contoh ini hanya tentang memperluas XPath hingga batasnya. Untuk jenis kueri ini, dan untuk hal yang lebih rumit, sintaks XQuery menjadi miliknya sendiri. Tetapi perlu diingat bahwa ada banyak hal sederhana yang dapat Anda lakukan dengan XPath saja, dan bahwa setiap ekspresi XPath yang valid juga valid di XQuery. Perhatikan bahwa Stylus Studio juga menyediakan penganalisis XPath bawaan untuk mengedit dan menguji ekspresi XPath yang kompleks secara visual, dan mendukung versi 1.0 dan 2.0.