XQuery peka huruf besar kecil. Elemen, atribut, dan variabel XQuery harus berupa nama XML yang valid.
Section Artikel
Aturan Sintaks Dasar XQuery
Beberapa aturan sintaks dasar:
- XQuery peka huruf besar kecil
- Elemen XQuery, atribut, dan variabel harus berupa nama XML yang valid
- Nilai string XQuery bisa dalam tanda kutip tunggal atau ganda
- Variabel XQuery ditentukan dengan $ diikuti dengan nama, mis. $bookstore
- Komentar XQuery dibatasi oleh (: and :), mis. (: XQuery Comment 🙂
Dokumen Contoh XML
Kita akan menggunakan dokumen “books.xml” pada contoh di bawah ini.
Lihat file “books.xml” di bawah ini.
Contoh :
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book category="cooking"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="children"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="web"> <title lang="en">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.99</price> </book> <book category="web" cover="paperback"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>
Output :
Ekspresi Bersyarat XQuery
Ekspresi “If-Then-Else” diizinkan di XQuery.
Lihat contoh berikut:
for $x in doc("books.xml")/bookstore/book return if ($x/@category="children") then <child>{data($x/title)}</child> else <adult>{data($x/title)}</adult>
Catatan tentang sintaks “if-then-else”: tanda kurung di sekitar ekspresi if diperlukan. else diperlukan, tetapi bisa juga hanya else ().
Hasil dari contoh di atas akan menjadi:
<adult>Everyday Italian</adult> <child>Harry Potter</child> <adult>XQuery Kick Start</adult> <adult>Learning XML</adult>
Perbandingan XQuery
Di XQuery ada dua cara untuk membandingkan nilai.
- Perbandingan umum: =,! =, <, <=,>,> =
- Perbandingan nilai: eq, ne, lt, le, gt, ge
Perbedaan antara kedua metode perbandingan tersebut ditunjukkan di bawah ini.
Ekspresi berikut mengembalikan nilai true jika ada atribut q yang memiliki nilai lebih dari 10:
$bookstore//book/@q > 10
Ekspresi berikut mengembalikan nilai true jika hanya ada satu atribut q yang dikembalikan oleh ekspresi dan nilainya lebih besar dari 10. Jika lebih dari satu q dikembalikan, kesalahan terjadi:
$bookstore//book/@q gt 10