Hi Menashé,
If you want to directly address XML nodes of a BaseX database, you can use the db:node-pre/db:open-pre or db:node-id/db:open-id functions. Please have a look at the Wiki for more information [1].
Hope this helps, Christian
[1] http://docs.basex.org/wiki/Database_Module#Read_Operations
On Thu, Apr 30, 2015 at 2:49 PM, Menashè Eliezer meliezer@ogs.trieste.it wrote:
Hello, I'm using Java org.xmldb.api package for accessing the Basex server (xmldb:basex://...) After getting the resultSet I need to make further queries about the requested subset (for reporting, etc.) I have seen that getId() cannot be used since the Resource will be anonymous if it is obtained as the result of a query. Source: http://xmldb-org.sourceforge.net/xapi/api/index.html
The queries are not fixed and are based on end user selection. I couldn't find a way to have a direct access/reference to a document. In my case the ID is simply the filename, but it doesn't seem to be so efficient. I wonder if creating a temporal collection for the subset would be faster than making query/queries similar to the following example in which there are only two ids, but I can have thousands of them:
let $ids := ('360836','300139') for $x in collection("collection_name") let $filename := substring-after(base-uri($x),'/') let $id := substring-before($filename,'.') where $id = $ids return ...
-- With kind regards, Menashè