Hi Seenivasan,
finally some feedback..
let $doc := <a /> let $schema := doc("../xsd/XDW.xsd") return validate:xsd($doc,$schema)
Yes, I see this is a problem, and I’ve encountered similar use cases, but I'm currently not sure how to fix this properly. The issue is that BaseX relies on external schema validation, so we don’t have direct access to the code executing the validation.
It could well be that Java’s validator interface provides some methods to set/modify the path to the current base uri. If you – or someone else – has time, ideas and/or experience how to fix this, suggestions and patches are welcome (see [1] for the source code).
Basex reports the first error while validating with xsd schema, while java uses to report the collection of errors that do not depend on each other.
A similar observation applies here: the error handling in the mentioned class could be revised in order to catch more than just the first error [2].
Feel free to ask if you have more questions, Christian
[1] https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/query/func/FNValidate.java#L95 [2] https://github.com/BaseXdb/basex/blob/master/src/main/java/org/basex/query/func/FNValidate.java#L183