Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

I want to use XQuery For Xml processing in java

I want to use XQuery for fetching data from Xml in java, but I am not getting which Jar I need to add for this. I searched in google lot but haven't got any useful example. For example I got following link:

https://docs.oracle.com/database/121/ADXDK/adx_j_xqj.htm

Then I am not getting jar file mentioned here. Anyone know how to start using XQuery in Java with a simple example will be very helpful. After lot of search I have got this link which is saying Xqjapi.jar comes with oracle database.

https://technology.amis.nl/2011/07/30/running-xquery-from-java-applications-using-the-xqj-api-and-the-oracle-xdk-implementation/

Is there any open source api I can use in Java for using XQuery?

like image 870
RSingh Avatar asked May 23 '15 13:05

RSingh


1 Answers

Well, there is another approach to get the required JARS, you need not install oracle database for that. I found the solution in this link,

http://orafmwsoa.blogspot.co.at/2014/06/running-xquery-from-java-applications.html

But you need not go through the entire link, what important point to note is, all necessary JARS are available from Oracle XQuery for Hadoop implementation.

And here is the link,

Oracle XQuery for Hadoop 2.4.1

Just download Oracle XQuery for Hadoop 4.1.0 and extract and create a normal Java Project with the libraries in path.

I tried this example from your link, and it works

import javax.xml.xquery.XQConnection;
import javax.xml.xquery.XQException;
import javax.xml.xquery.XQPreparedExpression;
import javax.xml.xquery.XQSequence;
import oracle.xml.xquery.OXQDataSource;


public class HelloWorld {

public static void main(String[] args) throws XQException {
    OXQDataSource ds = new OXQDataSource();
    XQConnection con = ds.getConnection();
    String query = "<hello-world>{1 + 1}</hello-world>";
    XQPreparedExpression expr = con.prepareExpression(query); 
    XQSequence result = expr.executeQuery();
    System.out.println(result.getSequenceAsString(null));
    
    result.close();
    expr.close();
    con.close();
}

}

With following JARS in path,

apache-xmlbeans

orai18n-mapping

oxquery

xmlparserv2_sans_jaxp_services

xqjapi

Also another suggestion,

  1. I installed Oracle Express Edition 11.2 OracleXE112_Win64 and it didn't had the required JARS, XE may be has limited functionality, so try installing different one.
  2. Also this link here Embedding XQuery in Java suggests usage of SAXON XSLT & XQuery processor. SAXON
like image 63
Shrikant Havale Avatar answered Oct 23 '22 19:10

Shrikant Havale