Hi everybody,

 

I’m trying to compose XML documents for SEPA transactions via BaseX.

I would like to check certain data against the corresponding schema before putting them into the document, e.g. BIC identifiers.

 

In the xsd, there’s a simpleType definition for BICs:

                <xs:simpleType name="BICIdentifier">

                               <xs:restriction base="xs:string">

                                               <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>

                               </xs:restriction>

                </xs:simpleType>

 

I hoped it would be as simple as

 

declare default element namespace "urn:iso:std:iso:20022:tech:xsd:pain.001.003.03";

let $node := <BIC>GEN0DEM1MPW</BIC>

return if(string($node) instance of BICIdentifier) then (true() (: process... :)) else (false() (: report error :))

 

But, as I learned now, BaseX doesn’t support import of schemas. Thus, I receive the error message “Unknown type: Q{urn:iso:std:iso:20022:tech:xsd:pain.001.003.03 }BICIdentifier”.

 

Is there some workaround (other than rebuilding regular expressions from schema to xquery)?

 

Best regards,

Ulrike.