---------- Forwarded message ----------
From: marco fregonese <[email protected]>
Date: 2013/1/21
Subject: Re: [basex-talk] dynamic web application, XQJ, BaseX
To: Christian Grün <[email protected]>


There is a class in my Java web application that has a method that, after
connecting to my BaseX database, execute a query on it.
This query (associated to the "xquerystring" variable), after importing a
library module and pointing the processor to the file containing the
library module("library_module.xq"), uses the function "lib:getparts()".
Now, after executing this method, I noticed that:
with BaseX 7.3 the Xquery processor (o whatever it is, I don't know) looks
for "library_module.xq" in the filesystem $HOME/basex/bin,
while with BaseX 7.5 the processor looks for "library_module.xq" in $HOME.
My question basically is: what is that makes the processor (or whatever it
is) look for the file "library_module.xq" in $HOME/basex/bin (with BaseX
7.3) and in $HOME (with BaseX 7.5)?

Hope I've been clear.

Thanks

PS: in BaseX GUI everything works fine: the XQuery processor looks for the
file containing the library module in the same folder where the main module
is.
Example of main module:

import module namespace lib="http://www.example.com/my_library_module"; at
"library_module.xq";

lib:getparts()

The following is the code of the class I've talked about:

package xqu;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;

import javax.xml.namespace.QName;
import javax.xml.xquery.XQConnection;
import javax.xml.xquery.XQException;
import javax.xml.xquery.XQExpression;
import javax.xml.xquery.XQResultSequence;

import con.Connection;

public class Query {

public static void getAllParts(String a, String sc) throws XQException,
FileNotFoundException
    {
        File file = new File(sc);
        FileOutputStream fos = new FileOutputStream(file);
        PrintStream ps = new PrintStream(fos);
        System.setOut(ps);

        XQConnection con = Connection.getConnection();
        XQExpression xqe = con.createExpression();

        xqe.bindString(new QName("b"), a, null);

        String xqueryString =
// using backslash for escaping "
                 "import module namespace lib=\"
http://www.example.com/library_module\"";  +
                    "at \"library_module.xq\";" +
                 "declare variable $b external; " +
                 "lib:getparts($b)";

        XQResultSequence rs = xqe.executeQuery(xqueryString);

        String b = rs.getSequenceAsString(null);

        con.close();

        System.out.println(b);


    }
}

2013/1/20 Christian Grün <[email protected]>

> Hi Marco,
>
> sorry for the late feedback. Can you reproduce the issues in the BaseX
> GUI or on command line?
>
> Best,
> Christian
> ___________________________________
>
>
_______________________________________________
BaseX-Talk mailing list
[email protected]
https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk

Reply via email to