Hàm trong XQuery
- Trang trước Chọn của XQuery
- Trang tiếp theo Giới thiệu về DTD
XQuery 1.0, XPath 2.0 và XSLT 2.0 chia sẻ cùng một thư viện hàm.
Hàm trong XQuery
XQuery chứa hơn 100 hàm tích hợp. Các hàm này có thể được sử dụng cho giá trị chuỗi, số, so sánh ngày tháng, thao tác với nút và QName, thao tác với chuỗi, giá trị lô-gic, v.v. Bạn cũng có thể định nghĩa hàm của riêng mình trong XQuery.
Hàm tích hợp của XQuery
URI không gian tên của hàm XQuery:
http://www.w3.org/2005/02/xpath-functions
Tiền tố mặc định của không gian tên của hàm là fn:.
Lưu ý:Hàm thường được gọi bằng tiền tố fn:, ví dụ fn:string(). Tuy nhiên, do fn: là tiền tố mặc định của không gian tên, vì vậy không cần sử dụng tiền tố trong khi gọi hàm.
Bạn có thể tìm thấy toàn bộ《Tài liệu tham khảo hàm trong XQuery》。
Ví dụ gọi hàm
Gọi hàm có thể được sử dụng cùng với biểu thức. Xem ví dụ dưới đây:
Ví dụ 1: Trong phần tử
<name>{upper-case($booktitle)}</name>
Ví dụ 2: Trong điều kiện của biểu thức đường dẫn
doc("books.xml")/bookstore/book[substring(title,1,5)='Harry'
Ví dụ 3: Trong câu let
let $name := (substring($booktitle,1,4))
Hàm định nghĩa người dùng của XQuery
Nếu không tìm thấy hàm XQuery cần thiết, bạn có thể viết hàm của riêng mình.
Hàm tùy chỉnh có thể được định nghĩa trong truy vấn hoặc trong thư viện độc lập.
Cú pháp
declare function tiền tố:Tên hàm($tham số AS loại dữ liệu)
AS loại dữ liệu trả về
{}}
(: ...mã hàm của hàm... :)
;
Lưu ý khi sử dụng hàm tùy chỉnh:
- Vui lòng sử dụng từ khóa declare function
- Tên hàm phải sử dụng tiền tố
- Kiểu dữ liệu của tham số thường khớp với loại dữ liệu được định nghĩa trong XML Schema
- Phần thân của hàm phải được bao bọc bởi dấu ngoặc花括号
Một ví dụ về hàm tùy chỉnh được khai báo trong truy vấn:
declare function local:minPrice(
$price as xs:decimal?,
$discount as xs:decimal?)
AS xs:decimal?
{}}
let $disc := ($price * $discount) div 100
return ($price - $disc)
;
(: Dưới đây là ví dụ về việc gọi hàm trên :)
<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>
- Trang trước Chọn của XQuery
- Trang tiếp theo Giới thiệu về DTD