Xquery-environment

提供:Dev Guides
移動先:案内検索

XQuery-環境設定

この章では、ローカル開発環境でXQueryライブラリをセットアップする方法について詳しく説明します。

広く使用されているオープンソースのスタンドアロンXQueryプロセッサSaxon Home Edition(Saxon-HE)を使用しています。 このプロセッサは、XSLT 2.0、XQuery 3.0、およびXPath 3.0をサポートし、パフォーマンスに対して高度に最適化されています。 Saxon XQueryプロセッサは、XMLデータベースがなくても使用できます。 この例では、単純なXMLドキュメントをデータベースとして使用します。

Saxon XQueryプロセッサを使用するには、アプリケーションのクラスパスにsaxon9he.jar、saxon9-test.jar、saxon9-unpack、saxon9-xqj.jarが必要です。 これらのjarファイルは、ダウンロードファイル SaxonHE9-6-0-1J.zip で入手できます。https://sourceforge.net/projects/saxon/files/Saxon-HE/9.6/saxonHE9-6-1-1J.zipをダウンロードしてください。/download[SaxonHE9-6-0-1J.zip]。

JavaベースのSaxon XQueryプロセッサを使用して、books.xqyをテストします。これは、サンプルXMLドキュメント(books.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.finddevguides.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));
      }
   }
}

XMLに対してXQueryを実行する手順

  • ステップ1 *-XQueryTester.javaを任意の場所、たとえば E:> *java にコピーします
  • ステップ2 *-books.xmlを同じ場所にコピーします E:> *java
  • ステップ3 *-books.xqyを同じ場所にコピーします E:> *java
  • *ステップ4 *-コンソールを使用してXQueryTester.javaをコンパイルします。 マシンにJDK 1.5以降がインストールされており、クラスパスが設定されていることを確認してください。 JAVAの使用方法の詳細については、リンクを参照してください:/java/index [JAVAチュートリアル]
E:\java\javac XQueryTester.java
  • *ステップ5 *-XQueryTesterを実行する
E:\java\java XQueryTester

出力

次の結果が得られます-

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

理解の例

  • books.xmlはサンプルデータを表します。
  • books.xqyは、books.xmlで実行されるXQuery式を表します。 次の章でこの表現の詳細を理解します。
  • JavaベースのXQueryエグゼキュータプログラムであるXQueryTesterは、books.xqyを読み取り、それをXQuery式プロセッサに渡し、式を実行します。 それから結果は印刷されます。