English 中文(简体)
XQuery - Environment Setup
  • 时间:2024-12-22

XQuery - Environment Setup


Previous Page Next Page  

本章详细阐述了如何在地方发展环境中建立图书馆。

我们正在使用一个公开的来源,即广泛使用的XQuery加工商Saxon Home Edition(Saxon-HE)。 该加工商支持XSLT 2.0、XQuery 3.0和XPath 3.0,并高度优化业绩。 Saxon 如果没有XML数据库,可使用Xery处理器。 我们用简单的XML文件作为我们的例子的数据库。

为了使用Saxon XQuery加工商,请在应用舱位中配备Saxon9he.jar、Saxon9-test.jar、Saxon9-un Pack、Saxon9-xqj.jar。 下载文件SaxonHE9-6-0-1J.zipSaxonHE9-6-0-1J.zip

Example

我们利用设在贾瓦的Saxon XQuery加工商测试书籍、xqy,该书载有对我国XML文件样本(即书本)的XQuery表述。

在这个例子中,我们看到如何撰写并处理一个问题,以获得价格超过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;

pubpc class XQueryTester {
   pubpc 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));
      }
   }	
}

Steps to Execute XQuery against XML

E:javajavac XQueryTester.java

E:javajava XQueryTester

Output

你取得了以下成果:

<title lang="en">Learn .Net in 24 hours</title>
<title lang="en">Learn XQuery in 24 hours</title>

Understanding Example

    书籍是样本数据。

    书籍.xqy是XQuery的表述,将在书本上执行。 我们理解下一章的细节。

    一家设在 Java的XQuery Executor方案,读书记.xqy,转至XQuery表达程序器,执行该表述。 更正应作在印发的记录上,由有关的代表团成员一人署名,送交逐字记录处处长(C-178)。

Advertisements