Cú pháp XQuery

XQuery nhạy cảm với dấu cách viết hoa/thường, các phần tử, thuộc tính và biến của XQuery phải là tên XML hợp lệ.

Quy tắc ngữ pháp cơ bản của XQuery:

Một số quy tắc ngữ pháp cơ bản:

  • XQuery nhạy cảm với dấu cách viết hoa/thường
  • Các phần tử, thuộc tính và biến của XQuery phải là tên XML hợp lệ.
  • Giá trị chuỗi XQuery có thể sử dụng dấu ngoặc kép hoặc dấu ngoặc kép kép.
  • Biến XQuery được định nghĩa bằng “$” theo sau là một tên, ví dụ, $bookstore
  • Phụ chú XQuery được chia cắt bởi (: và :), ví dụ, (: XQuery phụ chú :)

Biểu thức điều kiện XQuery

Cú pháp "If-Then-Else" có thể được sử dụng trong XQuery.

Xin xem ví dụ dưới đây:

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>

Lưu ý về cú pháp "If-Then-Else": dấu ngoặcRound sau biểu thức if là bắt buộc. else cũng là bắt buộc, nhưng chỉ cần viết “else ()” cũng được.

Kết quả của ví dụ trên:

<adult>Everyday Italian</adult>
<child>Harry Potter</child>
<adult>Learning XML</adult>
<adult>XQuery Kick Start</adult>

So sánh XQuery

Trong XQuery, có hai phương pháp để so sánh giá trị.

  1. So sánh chung: =, !=, <, <=, >, >=
  2. So sánh giá trị: eq, ne, lt, le, gt, ge

Sự khác biệt giữa hai phương pháp so sánh này như sau:

Xin xem biểu thức XQuery dưới đây:

$bookstore//book/@q > 10

Nếu giá trị thuộc tính q lớn hơn 10, giá trị trả về của biểu thức trên là true.

$bookstore//book/@q gt 10

Nếu chỉ trả về một q và giá trị của nó lớn hơn 10, biểu thức trả về true. Nếu có nhiều hơn một q được trả về, sẽ xảy ra lỗi.