XQuery - Configuration de l'environnement

Ce chapitre explique comment configurer la bibliothèque XQuery dans un environnement de développement local.

Nous utilisons un processeur XQuery autonome open source Saxon Home Edition (Saxon-HE) qui est largement utilisé. Ce processeur prend en charge XSLT 2.0, XQuery 3.0 et XPath 3.0 et est hautement optimisé pour les performances. Le processeur Saxon XQuery peut être utilisé sans aucune base de données XML. Nous utiliserons un simple document XML comme base de données dans nos exemples.

Pour utiliser le processeur Saxon XQuery, vous devez avoir saxon9he.jar, saxon9-test.jar, saxon9-unpack, saxon9-xqj.jar dans le chemin de classe de votre application. Ces fichiers jar sont disponibles dans le fichier de téléchargementSaxonHE9-6-0-1J.zipTéléchargez SaxonHE9-6-0-1J.zip .

Exemple

Nous utiliserons le processeur Saxon XQuery basé sur Java pour tester books.xqy, un fichier contenant une expression XQuery par rapport à notre exemple de document XML, c'est-à-dire books.xml.

Dans cet exemple, nous verrons comment écrire et traiter une requête pour obtenir les éléments de titre des livres dont le prix est supérieur à 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));
      }
   }	
}

Étapes pour exécuter XQuery sur XML

  • Step 1 - Copiez XQueryTester.java à n'importe quel emplacement, disons, E: > java

  • Step 2 - Copiez books.xml au même emplacement, E: > java

  • Step 3 - Copiez books.xqy au même endroit, E: > java

  • Step 4- Compilez XQueryTester.java à l'aide de la console. Assurez-vous que JDK 1.5 ou version ultérieure est installé sur votre ordinateur et que les chemins de classe sont configurés. Pour plus de détails sur l'utilisation de JAVA, consultez notre didacticiel JAVA

E:\java\javac XQueryTester.java
  • Step 5 - Exécuter XQueryTester

E:\java\java XQueryTester

Production

Vous obtiendrez le résultat suivant -

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

Exemple de compréhension

  • books.xml représente les exemples de données.

  • books.xqy représente l'expression XQuery qui doit être exécutée sur books.xml. Nous comprendrons l'expression en détail dans le prochain chapitre.

  • XQueryTester, un programme exécuteur XQuery basé sur Java, lit le books.xqy, le transmet au processeur d'expression XQuery et exécute l'expression. Ensuite, le résultat est imprimé.