zorba-xquery – XQuery (XML Query) adalah kueri dan bahasa pemrograman fungsional yang menanyakan dan mengubah kumpulan data terstruktur dan tidak terstruktur, biasanya dalam bentuk XML, teks dan dengan ekstensi khusus vendor untuk format data lain (JSON, biner, dll.). Bahasa ini dikembangkan oleh kelompok kerja XML Query dari W3C. Pekerjaan ini dikoordinasikan secara erat dengan pengembangan XSLT oleh Kelompok Kerja XSL; dua kelompok berbagi tanggung jawab untuk XPath, yang merupakan bagian dari XQuery.
XQuery 1.0 menjadi Rekomendasi W3C pada 23 Januari 2007.
XQuery 3.0 menjadi Rekomendasi W3C pada 8 April 2014.
XQuery 3.1 menjadi Rekomendasi W3C pada 21 Maret 2017.
Mengulas Tentang XQuery Secara Terperinci
– Fitur
Mengulas Tentang XQuery Secara Terperinci – XQuery adalah bahasa pemrograman yang fungsional, bebas efek samping, berorientasi ekspresi dengan sistem tipe sederhana, diringkas oleh Kilpeläinen:
Semua ekspresi XQuery beroperasi pada urutan, dan mengevaluasi ke urutan. Urutan adalah daftar item yang dipesan. Item dapat berupa node, yang mewakili komponen dokumen XML, atau nilai atom, yang merupakan contoh tipe dasar Skema XML seperti xs:integer atau xs:string. Urutan juga bisa kosong, atau hanya terdiri dari satu item. Tidak ada perbedaan yang dibuat antara satu item dan urutan tunggal. (…) Urutan XQuery/XPath berbeda dari daftar dalam bahasa seperti Lisp dan Prolog dengan mengecualikan urutan bersarang. Desainer XQuery mungkin menganggap urutan bersarang tidak perlu untuk manipulasi konten dokumen. Bersarang, atau hierarki struktur dokumen sebaliknya diwakili oleh node dan hubungan anak-orang tua mereka
XQuery menyediakan sarana untuk mengekstrak dan memanipulasi data dari dokumen XML atau sumber data apa pun yang dapat dilihat sebagai XML, seperti database relasional atau dokumen kantor.
XQuery berisi superset sintaks ekspresi XPath untuk menangani bagian tertentu dari dokumen XML. Ini melengkapi ini dengan “ekspresi FLWOR” seperti SQL untuk melakukan penggabungan. Ekspresi FLWOR dibangun dari lima klausa yang kemudian diberi nama: FOR, LET, WHERE, ORDER BY, RETURN.Bahasa ini juga menyediakan sintaks yang memungkinkan dokumen XML baru dibuat. Di mana nama elemen dan atribut diketahui sebelumnya, sintaks seperti XML dapat digunakan; dalam kasus lain, ekspresi yang disebut sebagai konstruktor simpul dinamis tersedia. Semua konstruksi ini didefinisikan sebagai ekspresi dalam bahasa, dan dapat bersarang secara sewenang-wenang.
Bahasa ini didasarkan pada XQuery dan XPath Data Model (XDM) yang menggunakan model struktur pohon dari konten informasi dokumen XML, yang berisi tujuh jenis node: node dokumen, elemen, atribut, node teks, komentar, instruksi pemrosesan , dan ruang nama.XDM juga memodelkan semua nilai sebagai urutan (nilai tunggal dianggap sebagai urutan dengan panjang satu). Item dalam urutan dapat berupa node XML atau nilai atom. Nilai atom dapat berupa bilangan bulat, string, boolean, dan seterusnya: daftar lengkap tipe didasarkan pada tipe primitif yang didefinisikan dalam Skema XML.
Baca Juga : Perkembangan Html Yang Ada Pada Zorba The Xquery Processor
Fitur untuk memperbarui dokumen atau database XML, dan kemampuan pencarian teks lengkap, bukan bagian dari bahasa inti, tetapi didefinisikan dalam standar ekstensi tambahan: Fasilitas Pembaruan XQuery 1.0 mendukung fitur pembaruan dan XQuery dan XPath Full Text 1.0 mendukung pencarian teks lengkap dalam dokumen XML.XQuery 3.0 menambahkan dukungan untuk pemrograman fungsional penuh, di mana fungsi adalah nilai yang dapat dimanipulasi (disimpan dalam variabel, diteruskan ke fungsi tingkat tinggi, dan dipanggil secara dinamis).
Di bawah ini adalah beberapa contoh bagaimana XQuery dapat digunakan:
a. Mengekstrak informasi dari database untuk digunakan dalam layanan web.
b. Menghasilkan laporan ringkasan pada data yang disimpan dalam database XML.
c. Mencari dokumen tekstual di Web untuk informasi yang relevan dan mengumpulkan hasilnya.
d. Memilih dan mengubah data XML ke XHTML untuk dipublikasikan di Web.
e. Menarik data dari database yang akan digunakan untuk integrasi aplikasi.
f. Memisahkan dokumen XML yang mewakili beberapa transaksi menjadi beberapa dokumen XML.
– XQuery dan XSLT dibandingkan
Cakupan
Meskipun XQuery pada awalnya dipahami sebagai bahasa kueri untuk koleksi besar dokumen XML, XQuery juga mampu mengubah dokumen individual. Dengan demikian, kemampuannya tumpang tindih dengan XSLT, yang dirancang secara tegas untuk memungkinkan input dokumen XML diubah menjadi HTML atau format lain.Standar XSLT 2.0 dan XQuery dikembangkan oleh kelompok kerja terpisah dalam W3C, bekerja sama untuk memastikan pendekatan umum jika sesuai. Mereka berbagi model data (XDM), sistem tipe, dan pustaka fungsi yang sama, dan keduanya menyertakan XPath 2.0 sebagai subbahasa.
Asal
Kedua bahasa, bagaimanapun, berakar pada tradisi yang berbeda dan melayani kebutuhan komunitas yang berbeda. XSLT terutama dipahami sebagai bahasa stylesheet yang tujuan utamanya adalah membuat XML untuk pembaca manusia di layar, di web (sebagai bahasa templat web), atau di atas kertas. XQuery terutama dipahami sebagai bahasa kueri basis data dalam tradisi SQL. Karena kedua bahasa tersebut berasal dari komunitas yang berbeda, XSLT lebih kuat dalam menangani dokumen naratif dengan struktur yang lebih fleksibel, sementara XQuery lebih kuat dalam penanganan datanya (misalnya, saat melakukan penggabungan relasional).
Versi
XSLT 1.0 muncul sebagai Rekomendasi pada tahun 1999, sedangkan XQuery 1.0 hanya menjadi Rekomendasi pada awal 2007; akibatnya, XSLT masih jauh lebih banyak digunakan. Kedua bahasa memiliki kekuatan ekspresif yang serupa, meskipun XSLT 2.0 memiliki banyak fitur yang hilang dari XQuery 1.0, seperti pengelompokan, pemformatan angka dan tanggal, dan kontrol yang lebih besar atas ruang nama XML. Banyak dari fitur ini direncanakan untuk XQuery 3.0. mempertimbangkan fakta bahwa XSLT 1.0 dan XSLT 2.0 adalah bahasa yang sangat berbeda. XSLT 2.0, khususnya, telah sangat dipengaruhi oleh XQuery dalam pergerakannya ke pengetikan yang kuat dan kesadaran skema.
Kekuatan dan kelemahan
Studi kegunaan telah menunjukkan bahwa XQuery lebih mudah dipelajari daripada XSLT, terutama bagi pengguna dengan pengalaman bahasa database sebelumnya seperti SQL. Ini dapat dikaitkan dengan fakta bahwa XQuery adalah bahasa yang lebih kecil dengan konsep yang lebih sedikit untuk dipelajari, dan fakta bahwa program lebih ringkas. Juga benar bahwa XQuery lebih ortogonal, di mana ekspresi apa pun dapat digunakan dalam konteks sintaksis apa pun. Sebaliknya, XSLT adalah sistem dua bahasa di mana ekspresi XPath dapat disarangkan dalam instruksi XSLT tetapi tidak sebaliknya.
XSLT saat ini lebih kuat dari XQuery untuk aplikasi yang melibatkan membuat perubahan kecil pada dokumen (misalnya, menghapus semua elemen CATATAN). Aplikasi tersebut umumnya ditangani di XSLT dengan menggunakan pola pengkodean yang melibatkan template identitas yang menyalin semua node tidak berubah, dimodifikasi oleh template tertentu yang memodifikasi node yang dipilih. XQuery tidak memiliki ekuivalen dengan pola pengkodean ini, meskipun dalam versi mendatang akan dimungkinkan untuk mengatasi masalah tersebut menggunakan fasilitas pembaruan dalam bahasa yang sedang dikembangkan.
XQuery 1.0 tidak memiliki mekanisme apa pun untuk pengikatan dinamis atau polimorfisme; ini telah diperbaiki dengan pengenalan fungsi sebagai nilai kelas satu di XQuery 3.0. Tidak adanya kemampuan ini mulai terlihat saat menulis aplikasi besar, atau saat menulis kode yang dirancang untuk dapat digunakan kembali di lingkungan yang berbeda. XSLT menawarkan dua mekanisme pelengkap di bidang ini: pencocokan dinamis aturan template, dan kemampuan untuk mengesampingkan aturan menggunakan xsl:import, yang memungkinkan untuk menulis aplikasi dengan beberapa lapisan penyesuaian.
Tidak adanya fasilitas ini dari XQuery 1.0 merupakan keputusan desain yang disengaja: hal ini memiliki konsekuensi bahwa XQuery sangat dapat menerima analisis statis, yang penting untuk mencapai tingkat optimasi yang diperlukan dalam bahasa query database. Ini juga memudahkan untuk mendeteksi kesalahan dalam kode XQuery pada waktu kompilasi.
Fakta bahwa XSLT 2.0 menggunakan sintaks XML membuatnya agak bertele-tele dibandingkan dengan XQuery 1.0. Namun, banyak aplikasi besar memanfaatkan kemampuan ini dengan menggunakan XSLT untuk membaca, menulis, atau memodifikasi lembar gaya secara dinamis sebagai bagian dari alur pemrosesan. Penggunaan sintaks XML juga memungkinkan penggunaan alat berbasis XML untuk mengelola kode XSLT. Sebaliknya, sintaks XQuery lebih cocok untuk embedding dalam bahasa pemrograman tradisional seperti Java (lihat XQuery API untuk Java) atau C#. Jika perlu, kode XQuery juga dapat diekspresikan dalam sintaks XML yang disebut XQueryX. Representasi XQueryX dari kode XQuery agak bertele-tele dan tidak nyaman bagi manusia, tetapi dapat dengan mudah diproses dengan alat XML, misalnya diubah dengan stylesheet XSLT.