Why not pass both schemas as a string? You could then tokenize it and get two validation reports.

Or do you want one validation report for two schemas at once? I am not sure if that’s possible...

 

let $schema:= "http://inspire.ec.europa.eu/schemas/bu-base/4.0/BuildingsBase.xsd http://schemas.opengis.net/gml/3.2.1/gml.xsd"

let $schemas := tokenize($schema,'\s')

for $sch in $schemas

return validate:xsd-info($xml,$sch)

 

Daniel

 

Von: BaseX-Talk <basex-talk-bounces@mailman.uni-konstanz.de> Im Auftrag von Arantza Etxebarria Pablo
Gesendet: Freitag, 4. März 2022 10:29
An: basex-talk@mailman.uni-konstanz.de
Betreff: [basex-talk] validate:xsd-info agains more than one schema

 

Dear Community, 

 

We have been trying to validate a file using the function  validate:xsd-info($input as item(), $schema as item()?) as xs:string*   against several different schemas and, we don't know how to send the parameter “schema” with more than one schema for this function.

 

We have tried to declare the variable schema like this :

 

let $schema:= "http://inspire.ec.europa.eu/schemas/bu-base/4.0/BuildingsBase.xsd http://schemas.opengis.net/gml/3.2.1/gml.xsd"

 

But it returns this error message:

XML document 'example.gml': -1:-1: schema_reference.4: Failed to read schema document 'http://inspire.ec.europa.eu/schemas/bu-base/4.0/BuildingsBase.xsd http://schemas.opengis.net/gml/3.2.1/gml.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 have tried this function when no schema is given and it takes the contain of schemaLocation attribute, and in this case, is able to validate more than one schema. But I need to pass the schemas through a variable 

 

Could any of you point us in the right direction?

 

Thanks

 

--

Arantza Etxebarria