> It looks to me that in the case where the schema is presented as XML it is
> written to a temporary file [1] so relative includes/imports will not be
> resolved.

Thanks, and yes, this seems to be the problem. We could think about
writing the temporary file to the query directory, but this may cause
problems in certain environments.

C.



> /Andy
>
> [1]
> https://github.com/BaseXdb/basex/blob/7e7aad58feae2f7e36bb1bcad9641cbf944f4594/basex-core/src/main/java/org/basex/query/func/validate/ValidateXsdInfo.java#L66
>
> On 12 September 2014 17:03, Andy Bunce <bunce.a...@gmail.com> wrote:
>>
>> I think I have had this problem, and my recollection is
>>
>> let $xsd:=doc( $xsdURI)
>> validate:xsd-info($doc1, $xsd)
>>
>> does  not work, but
>>
>> validate:xsd-info($doc1, $xsdURI)
>>
>> does. I guess the problem with the first case is that the base-uri info is
>> not getting though to the validation component.
>> The bigger problem of includes in XSLT or XSD not working for sources in
>> the database would seem to require a custom resolver class.
>> Something like those discussed [1] and [2]
>>
>> /Andy
>>
>> [1]
>> http://stackoverflow.com/questions/7236291/saxon-error-with-xslt-import-statement
>> [2]
>> http://stackoverflow.com/questions/22538071/java-xml-schema-validator-with-custom-resource-resolver-fails-to-resolve-element
>>
>>
>>
>>
>> On 12 September 2014 16:31, Christian Grün <christian.gr...@gmail.com>
>> wrote:
>>>
>>> > It would be wonderful if imports/includes could be automatically
>>> > resolved -
>>> > the "validate" module could then be extremely useful!
>>>
>>> As we use external code for processing XSD, I'm not quite sure if we
>>> can do something about this. - Could you possibly provide us with a
>>> self-contained example that we can use for testing?
>>>
>>> Thanks,
>>> Christian
>>>
>>>
>>>
>>> >
>>> > Best regards,
>>> > Hans-Juegen
>>> >
>>> > PS: My experiment:
>>> >
>>> > ======================================================
>>> > let $docURI := '... a document URI ...'
>>> > let $xsdURI := '... the corresponding schema URI ...'
>>> >
>>> > let $xsd := doc($xsdURI)
>>> > let $tns := $xsd/xs:schema/@targetNamespace
>>> > let $doc1 := doc($docURI)
>>> > let $doc2 :=
>>> >     document {
>>> >         element {node-name($doc1/*)} {
>>> >             attribute xsi:schemaLocation {concat($tns, ' ', $xsdURI)},
>>> >             $doc1/*/(@*, node())
>>> >         }
>>> >     }
>>> > return
>>> >     <results>{
>>> >         <result1>{validate:xsd-info($doc1, $xsd)}</result1>,
>>> >         <result2>{validate:xsd-info($doc2)}</result2>
>>> >     }</results>
>>> > ======================================================
>>> >
>>> >   =>
>>> >
>>> > <results>
>>> >   <result1>Fatal:src-resolve: Name "communication:ShoppingCartFetchRS"
>>> > kann
>>> > nicht als "type definition"-Komponente aufgelöst werden.</result1>
>>> >   <result2/>
>>> > </results>
>>> >
>>> >
>>
>>
>

Reply via email to