How to address a document inside a basex database?

Sunday, 28 March 2010 · 2 messages
SS
Sandra Maria Silcot28 Mar 2010 00:02 #

Hi all,

I have a large database of about a dozen separate xml files. When I use the GUI interface, I can see them all in the graphical display, and as I pass the cursor over elements, it displays

doc("om.xml")/...

But when I try that in a query (the database is open), I'm told:

FODC0002 File or directory C:/servers/basex/om.xml not found

The basex installation is at C:/servers/basex and the currently opened database ("fasdb"), which was loaded from file 'om.xml' and others on a different machine, and downloaded, lives here:

C:/servers/basex/BaseXData/fasdb

How can I refer just to one document from that db in a query e.g.

let $persons := doc("om.xml")//person

Forgive me if this is a basic error on my part, I am still learning. I have tried variations on the basex:db construct, but all give a file not found error. If I move the document to where it is looking, basex builds a new db, not what I want at all!

I'm sure there is a simple solution but I cannot see it. Any clues much appreciated.

Cheers all,

Sandra

CG
Christian Grün28 Mar 2010 04:38 #

..this is an easy one (yet, no reason to be sorry…): you can use the collection() and basex-uri() functions to find a file within a collection. The following example might give you some hints:

http://basex.org/code/CollectionQueryExample

Hope this helps, Christian

Quoted text · Sandra Maria Silcot · 44 lines
On Sun, Mar 28, 2010 at 12:02 AM, Sandra Maria Silcot <ssilcot at unimelb.edu.au> wrote: > Hi all, > > I have a large database of about a dozen separate xml files. When I use > the GUI interface, I can see them all in the graphical display, and as I > pass the cursor over elements, it displays > > doc("om.xml")/... > > But when I try that in a query (the database is open), I'm told: > > FODC0002 File or directory C:/servers/basex/om.xml not found > > The basex installation is at C:/servers/basex and the currently opened > database ("fasdb"), which was loaded from file 'om.xml' and others on a > different machine, and downloaded, lives here: > > C:/servers/basex/BaseXData/fasdb > > How can I refer just to one document from that db in a query e.g. > > let $persons := doc("om.xml")//person > > Forgive me if this is a basic error on my part, I am still learning. I > have tried variations on the basex:db construct, but all give a file not > found error. If I move the document to where it is looking, basex builds a > new db, not what I want at all! > > I'm sure there is a simple solution but I cannot see it. Any clues much > appreciated. > > Cheers all, > > Sandra > > > > > _______________________________________________ > BaseX-Talk mailing list > BaseX-Talk at mailman.uni-konstanz.de > https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk >

⚡Generated with XQuery