XQuery - Ortam Kurulumu

Bu bölüm, yerel bir geliştirme ortamında XQuery kitaplığının nasıl kurulacağını açıklar.

Yaygın olarak kullanılan açık kaynaklı bağımsız bir XQuery işlemci Saxon Home Edition (Saxon-HE) kullanıyoruz. Bu işlemci XSLT 2.0, XQuery 3.0 ve XPath 3.0'ı destekler ve performans için son derece optimize edilmiştir. Saxon XQuery işlemcisi, herhangi bir XML veritabanı olmadan kullanılabilir. Örneklerimizde veritabanımız olarak basit bir XML belgesi kullanacağız.

Saxon XQuery işlemcisini kullanmak için, uygulamanızın sınıf yolunda saxon9he.jar, saxon9-test.jar, saxon9-unpack, saxon9-xqj.jar olmalıdır. Bu jar dosyaları, indirme dosyasında mevcutturSaxonHE9-6-0-1J.zipSaxonHE9-6-0-1J.zip dosyasını indirin .

Misal

Java tabanlı Saxon XQuery işlemcisini, XQuery ifadesini örnek XML belgemize, yani books.xml'ye karşı içeren bir dosya olan books.xqy'yi test etmek için kullanacağız.

Bu örnekte, fiyatı 30'dan fazla olan kitapların başlık öğelerini almak için bir sorgunun nasıl yazılacağını ve işleneceğini göreceğiz.

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));
      }
   }	
}

XQuery'yi XML'e Karşı Yürütme Adımları

  • Step 1 - XQueryTester.java dosyasını herhangi bir konuma kopyalayın, diyelim ki, E: > java

  • Step 2 - books.xml dosyasını aynı konuma kopyalayın, E: > java

  • Step 3 - books.xqy dosyasını aynı konuma kopyalayın, E: > java

  • Step 4- Konsol kullanarak XQueryTester.java'yı derleyin. Makinenizde JDK 1.5 veya sonraki bir sürümünün kurulu olduğundan ve sınıf yollarının yapılandırıldığından emin olun. JAVA'nın nasıl kullanılacağına ilişkin ayrıntılar için, JAVA Eğitimimize bakın

E:\java\javac XQueryTester.java
  • Step 5 - XQueryTester'ı çalıştırın

E:\java\java XQueryTester

Çıktı

Aşağıdaki sonucu alacaksınız -

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

Örnek Anlamak

  • books.xml örnek verileri temsil eder.

  • books.xqy, books.xml üzerinde yürütülecek XQuery ifadesini temsil eder. İfadeyi bir sonraki bölümde ayrıntılı olarak anlayacağız.

  • Java tabanlı bir XQuery yürütme programı olan XQueryTester, books.xqy dosyasını okur, XQuery ifade işlemcisine iletir ve ifadeyi yürütür. Ardından sonuç yazdırılır.