This worked for me, where “test-local” contains a document:
Context context = new Context();
LocalSession s = new LocalSession(context);
s.execute(new Check("test-local"));
try (Query q = s.query("for $doc in collection() return $doc")) {
while (q.more()) {
System.out.println(q.next()_);_
}
}
But, why your code isn’t working could be useful to know. It seems
like there are some details left out.
Kendall
*From: *<basex-talk-boun...@mailman.uni-konstanz.de> on behalf of AJ
Weber <awe...@comcast.net>
*Date: *Friday, March 10, 2017 at 11:40 AM
*To: *"basex-talk@mailman.uni-konstanz.de"
<basex-talk@mailman.uni-konstanz.de>
*Subject: *Re: [basex-talk] Simple query
On 3/10/2017 2:24 PM, Kendall Shaw wrote:
Michael Seiferle gave the answer already, I think. What would
collection() be referring to? How would BaseX know what to
return? Probably there is no database specified. Presumably, in
the GUI you have opened a database.
Yes, I did not include my code to open the database. There is a
database open and this does not throw an exception, it just returns
no results.
In my constructor of this class there is the following code:
new Check(this.MyID).execute(context);
(MyID is a String identifying the database I want to work with
exclusively with this context passed.)
As I mentioned in a separate post, my query where matches(uri...)
works fine...every time. That query also does not have a specific
collection in the query.
Kendall
*From: *<basex-talk-boun...@mailman.uni-konstanz.de>
<mailto:basex-talk-boun...@mailman.uni-konstanz.de> on behalf of
AJ Weber <awe...@comcast.net> <mailto:awe...@comcast.net>
*Date: *Friday, March 10, 2017 at 6:44 AM
*To: *Fabrice ETANCHAUD <fetanch...@groupefbo.com>
<mailto:fetanch...@groupefbo.com>,
"basex-talk@mailman.uni-konstanz.de"
<mailto:basex-talk@mailman.uni-konstanz.de>
<basex-talk@mailman.uni-konstanz.de>
<mailto:basex-talk@mailman.uni-konstanz.de>
*Subject: *Re: [basex-talk] Simple query
On 3/9/2017 3:46 AM, Fabrice ETANCHAUD wrote:
Hello Aaron,
You would learn faster by using the BaseXGUI application,
You will benefit from syntax highlighting, real time
execution, and hits on function signatures.
I am trying the GUI now. It is an excellent tool!
However, issuing the same exact XQuery in the GUI returns 3
documents (which is what I would have originally expected).
Maybe it is an issue with how I setup my query in java? Here is
my code:
try (LocalSession session = new LocalSession(this.context)) {
//test
try (Query q = session.query("for $doc in
collection() return $doc")) {
while (q.more()) {
LOG.debug("RESULT: " + q.next());
}
}
}
catch (Exception e) {
LOG.error("Could not execute query " + statement, e);
}
Best regards,
Fabrice
*De :*basex-talk-boun...@mailman.uni-konstanz.de
<mailto:basex-talk-boun...@mailman.uni-konstanz.de>
[mailto:basex-talk-boun...@mailman.uni-konstanz.de] *De la
part de* Aaron Weber
*Envoyé :* jeudi 9 mars 2017 00:31
*À :* basex-talk@mailman.uni-konstanz.de
<mailto:basex-talk@mailman.uni-konstanz.de>
*Objet :* [basex-talk] Simple query
Newbie alert.
I'm trying to get my feet wet with BaseX, and in doing so, am
trying to understand XQuery and how to apply it to a database
full of documents (not just a single document that is
typically queried).
I am using Java and can post my code, but with a
LocalSession, and a query, the following produces 0 results.
For $doc in collection() return $doc
I realize there's no "where", and in the sql world that would
match all. Maybe not in XQuery?
Obviously just a test query, but I need to start somewhere. :-)
Thanks for any help!
--
AJ