Hello,
As far as I have understood it, it all depends on how you start basex. If you open it using the command line from the same folder where your relative paths are rooted, it should work fine.
Best regards,
Kristian K
Hello,
I've just discovered BaseX and decided to make some experiments. One of them is, suppose I have several documents (data + schemas), something like this:
sys/core.xsd
<?xml version="1.0"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:SYS-CORE" targetNamespace="urn:SYS-CORE"><xs:attribute name="category" type="xs:normalizedString"/></xs:schema>
lib/album.xsd
<?xml version="1.0"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:SYS-CORE ../sys/core.xsd" xmlns:sys="urn:SYS-CORE" xmlns="urn:LIB-ALBUM" targetNamespace="urn:LIB-ALBUM"><xs:import namespace="urn:SYS-CORE"/><xs:element name="album"><xs:complexType><xs:sequence><xs:element ref="title" minOccurs="1" maxOccurs="1"/></xs:sequence><xs:attribute ref="sys:category" use="required"/></xs:complexType></xs:element><xs:element name="title" type="xs:normalizedString"/></xs:schema>
usr/albums/album1.xml
<?xml version="1.0"?><album xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:LIB-ALBUM ../../lib/album.xsd" xmlns:sys="urn:SYS-CORE" sys:category="albums" xmlns="urn:LIB-ALBUM"><title>Album #1</title></album>
I'm uploading these documents using a Python script (I'm using BaseXClient) preserving the file system hierarchy structure I defined above. If I open the documents in IntelliJ IDEA, I can be sure that the documents are valid (I mean, I don't see XSD validation errors), therefore I'm assuming they are valid by fact. However, if I'm trying to validate the XML documents on the BaseX side
session.execute('XQUERY for $doc in collection("%s") where fn:ends-with(fn:base-uri($doc), ".xml") return validate:xsd($doc)' % database)
I'm getting the following error
[bxerr:BXVA0001] Validation failed: 1:186: schema_reference.4: Failed to read schema document '../../lib/album.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.
I'm wondering, what am I doing wrong trying to validate documents directly in BaseX? Can BaseX resolve absolute/relative paths in this case?
Thanks in advance!
P.S. Apologies if I made something wrong (wrong subject, mailing list, non text/plain email, etc), this is my first time sending an email to a mailing list.P.P.S. This email may contain an ad footer since I use this free email service. If possible, please trim the ad away before it's sent/archived. Thanks!
-- реклама -----------------------------------------------------------
http://FREEhost.UA - Купи хостинг или домен и получи сертификат
Google AdWords номиналом 900 грн.в подарок! - http://goo.gl/EcgF4I