This error is related to namespaces.
Notice! This page describes the nature of the error using a hypothetical example and not the erroneous data of the input test file. You should however be able to apply this information to your error case.
Error description:
This error is related to namespaces. This error could also mean that you have validated your file against wrong pipe. This could happen for example one of the following ways:
- Direct debit file to a credit transfer pipe.
- Wrong version of file used, e.g. pain.001.001.02 file to a pain.001.001.03 pipe
- File with country specific namespace validated against e.g. general EPC pipe.
- Namespace is defined within element, even though it is not expected. For example:
<xs:OrgId>
<xs:Othr>
...
when following is expected
...
<OrgId>
<Othr>
In case the validation pipe is correct, the error is related to namespace given in the root tag of the XML file. The default namespace is given in the root tag of the file with xmlns parameter. For example the ISO20022 Direct Debit XML file could begin like this:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02">
Some possible causes for this error are:
- Namespace missing
- Typing mistake in namespace (example below)
- Typing mistake in "xmlns" parameter e.g. "xmlsn"
Example:
As listed above in this page the error could be wrong validation pipe or something related to the namespace. Let's assume that the validation pipe is correct. We can see that the default namespace is given with xmlns parameter, so everything seems fine from this part. If we examine the namespace itself closely we can see that the "2022" part in the middle is erroneous and it should be 20022. The correct namespace is defined in the schema with targetNamespace parameter, e.g.:
<xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02"elementFormDefault="qualified">
Example namespaces:
Correct form for pain.001.001.02 payments is: xmlns= "urn:iso:std:iso:20022:tech:xsd:pain.001.001.02".
Correct form for pain.001.001.03 payments is: xmlns= "urn:iso:std:iso:20022:tech:xsd:pain.001.001.03".
Correct form for pain.008.001.02 payments is: xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02".
Explanation of the error message given by the validator:
Element 'Elem1': No matching global declaration available for the validation root.
Where Elem1 is the root element found from the file and which differs from the one specified in schema.