Handling encoding conflicts
The way that
you handle encoding-conflict exceptions depends on the setting of
the XMLPARSE compiler option.
About this task
For XMLPARSE(XMLSS):
The parser does not continue after
an encoding-conflict exception or after any other type of exception.
Any changes that you make in the processing procedure to the value
of XML-CODE are ignored. The value in XML-CODE when
the parser returns to the XML PARSE statement is
the original exception code that the parser set.
For XMLPARSE(COMPAT):
Your processing procedure might
be able to handle exceptions for document encoding conflicts. Exception
events in which the parse data item is alphanumeric and the exception
code in XML-CODE is within the range 100,001 - 165,535 indicate that the code page
of the document (as specified by its encoding declaration) conflicts
with the external code-page information.
In this special case, you can choose
to parse using the code page of the document by subtracting 100,000 from the value in XML-CODE. For instance, if XML-CODE contains
101,140, the code page of the document is 1140. Alternatively, you
can choose to parse using the external code page by setting XML-CODE to
zero before returning to the parser.
The parser takes one of three actions after returning from a processing procedure for an encoding-conflict exception event:
- If you set
XML-CODEto zero, the parser uses the external code page: the value of theCODEPAGEcompiler option. - If you set
XML-CODEto the code page of the document (that is, the originalXML-CODEvalue minus 100,000), the parser uses the code page of the document.This is the only case in which the parser continues when
XML-CODEhas a nonzero value upon returning from a processing procedure. - Otherwise, the parser stops processing the document and returns
control to the
XML PARSEstatement with an exception condition.XML-CODEcontains the exception code that was originally passed with the exception event.
XMLPARSE (compiler option)
The encoding of XML documents
XML PARSE exceptions with XMLPARSE(XMLSS) in effect
XML PARSE exceptions with XMLPARSE(COMPAT) in effect
z/OS XML System Services User's Guide and Reference