I've used BaseX to create a database of the XML Schema Test Suite, by specifying (in the GUI) the test suite's root directory and a filter of *.xml. (Well, to be completely explicit it's the root directory of a mirror in which each file is a symbolic link to the real test suite directories; this allows me to exclude ill-formed input and rename all XSD files as .xsd.xml.)
But I find that when I retrieve an element $e and ask what document it was in, using document-uri($e), I do not get the expected result: I get the file name of the document, but I do not get the path to the document, only the path to the database root.
For example: the BaseX database I'm working with was created by indexing directory /home/xmlschema/mirror-11. And for a query result element $a found in document /home/xmlschema/mirror-11/msData/additional/test73850.xml the expression document-uri($a/root()) returns
/home/xmlschema/mirror-11/test73850.xsd.xml
instead of the expected
/home/xmlschema/mirror-11/msData/additional/test73850.xml
(Side note: I do realize that the 'root()' in '$a/root()' is irrelevant; it's there to work around a bug in another XQuery processor, which shall remain nameless, which otherwise returns the empty sequence. Yes, it's true: I am seeing other XQuery engines as well as BaseX. I blush to admit it, because it makes me seem kind of promiscuous, but it's true.)
Is this a bug? Did I do something wrong / set some parameter wrong when creating the database?) Is there a workaround?
If it matters, I'm running BaseX 5.7 (cannot move to BaseX 6 at the moment because no Java 6 is available for my current hardware and software).
the expression document-uri($a/root()) returns
/home/xmlschema/mirror-11/test73850.xsd.xml
instead of the expected
/home/xmlschema/mirror-11/msData/additional/test73850.xml
Thanks to Gerrit – yes, this problem has been solved with version 6.1.4.
Yes, it's true: I am seeing other XQuery engines as well as BaseX. I blush to admit it, because it makes me seem kind of promiscuous, but it's true.)
No reason to be sorry. We have to accept that as long as there are acceptable alternatives around ;)
If it matters, I'm running BaseX 5.7 (cannot move to BaseX 6 at the moment because no Java 6 is available for my current hardware and software).
We hope you'll eventually find some way to get BaseX 6.0 running. A Lot has been changed since 5.x.
All the best, Christian
basex-talk@mailman.uni-konstanz.de