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é.