XQuery - Thiết lập môi trường
Chương này trình bày chi tiết cách thiết lập thư viện XQuery trong môi trường phát triển cục bộ.
Chúng tôi đang sử dụng bộ xử lý XQuery độc lập mã nguồn mở Saxon Home Edition (Saxon-HE) được sử dụng rộng rãi. Bộ xử lý này hỗ trợ XSLT 2.0, XQuery 3.0 và XPath 3.0 và được tối ưu hóa cao cho hiệu suất. Bộ xử lý Saxon XQuery có thể được sử dụng mà không cần có bất kỳ cơ sở dữ liệu XML nào. Chúng tôi sẽ sử dụng một tài liệu XML đơn giản làm cơ sở dữ liệu trong các ví dụ của chúng tôi.
Để sử dụng bộ xử lý Saxon XQuery, bạn nên có saxon9he.jar, saxon9-test.jar, saxon9-unpack, saxon9-xqj.jar trong classpath của ứng dụng. Các tệp jar này có sẵn trong tệp tải xuốngSaxonHE9-6-0-1J.zipTải xuống SaxonHE9-6-0-1J.zip .
Thí dụ
Chúng tôi sẽ sử dụng bộ xử lý Saxon XQuery dựa trên Java để kiểm tra books.xqy, một tệp chứa biểu thức XQuery dựa trên tài liệu XML mẫu của chúng tôi, tức là books.xml.
Trong ví dụ này, chúng ta sẽ xem cách viết và xử lý một truy vấn để lấy các phần tử tiêu đề của sách có giá lớn hơn 30.
books.xml
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book category="JAVA">
<title lang="en">Learn Java in 24 Hours</title>
<author>Robert</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="DOTNET">
<title lang="en">Learn .Net in 24 hours</title>
<author>Peter</author>
<year>2011</year>
<price>40.50</price>
</book>
<book category="XML">
<title lang="en">Learn XQuery in 24 hours</title>
<author>Robert</author>
<author>Peter</author>
<year>2013</year>
<price>50.00</price>
</book>
<book category="XML">
<title lang="en">Learn XPath in 24 hours</title>
<author>Jay Ban</author>
<year>2010</year>
<price>16.50</price>
</book>
</books>
books.xqy
for $x in doc("books.xml")/books/book where $x/price>30
return $x/title
XQueryTester.java
package com.tutorialspoint.xquery;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import javax.xml.xquery.XQConnection;
import javax.xml.xquery.XQDataSource;
import javax.xml.xquery.XQException;
import javax.xml.xquery.XQPreparedExpression;
import javax.xml.xquery.XQResultSequence;
import com.saxonica.xqj.SaxonXQDataSource;
public class XQueryTester {
public static void main(String[] args){
try {
execute();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (XQException e) {
e.printStackTrace();
}
}
private static void execute() throws FileNotFoundException, XQException{
InputStream inputStream = new FileInputStream(new File("books.xqy"));
XQDataSource ds = new SaxonXQDataSource();
XQConnection conn = ds.getConnection();
XQPreparedExpression exp = conn.prepareExpression(inputStream);
XQResultSequence result = exp.executeQuery();
while (result.next()) {
System.out.println(result.getItemAsString(null));
}
}
}
Các bước thực thi XQuery dựa trên XML
Step 1 - Sao chép XQueryTester.java vào bất kỳ vị trí nào, chẳng hạn như, E: > java
Step 2 - Sao chép books.xml vào cùng một vị trí, E: > java
Step 3 - Sao chép books.xqy vào cùng một vị trí, E: > java
Step 4- Biên dịch XQueryTester.java bằng giao diện điều khiển. Đảm bảo bạn đã cài đặt JDK 1.5 trở lên trên máy của mình và các đường dẫn classpath đã được định cấu hình. Để biết chi tiết về cách sử dụng JAVA, hãy xem Hướng dẫn sử dụng JAVA của chúng tôi
E:\java\javac XQueryTester.java
Step 5 - Thực thi XQueryTester
E:\java\java XQueryTester
Đầu ra
Bạn sẽ nhận được kết quả sau:
<title lang="en">Learn .Net in 24 hours</title>
<title lang="en">Learn XQuery in 24 hours</title>
Hiểu ví dụ
books.xml đại diện cho dữ liệu mẫu.
books.xqy đại diện cho biểu thức XQuery sẽ được thực thi trên books.xml. Chúng ta sẽ hiểu biểu thức chi tiết trong chương tiếp theo.
XQueryTester, một chương trình thực thi XQuery dựa trên Java, đọc books.xqy, chuyển nó đến bộ xử lý biểu thức XQuery và thực thi biểu thức. Sau đó, kết quả được in ra.