XML-CODE

For each XML event except an EXCEPTION event, the parser sets the value of the XML-CODE special register to zero. For an EXCEPTION event, the parser sets XML-CODE to a value that identifies the specific exception.

For information about the possible exception codes, see the related references.

When the parser returns control to the XML PARSE statement from your processing procedure, XML-CODE generally contains the most recent value that was set by the parser. However, for any event other than EXCEPTION, if you set XML-CODE to -1 in your processing procedure, parsing terminates with a user-initiated exception condition when control returns to the parser, and XML-CODE retains the value -1.

For an EXCEPTION XML event when XMLPARSE(COMPAT) is in effect, your processing procedure can, in some cases, set XML-CODE to a meaningful value before control returns to the parser. (For details, see the related tasks about handling XML PARSE exceptions and handling encoding conflicts.) If you set XML-CODE to any other nonzero value or set it for any other exception, the parser resets XML-CODE to the original exception code.

For a START-OF-DOCUMENT XML event when compiler option XMLPARSE(COMPAT) is in effect, your processing procedure can set XML-CODE to 1 before control returns to the parser. This action instructs the parser to release (at the end of parsing) any Language Environment® resources acquired during parsing.

The following table shows the results of setting XML-CODE to various values. The leftmost column shows the type of XML event passed to the processing procedure; the other column headings show the XML-CODE value set by the processing procedure. The cell at the intersection of each row and column shows the action that the parser takes upon return from the processing procedure for a given combination of XML event and XML-CODE value.

Table 1. Results of processing-procedure changes to XML-CODE with XMLPARSE(XMLSS) in effect
XML event type XML-CODE set to -1 XML-CODE set to 0 XML-CODE set to 1 XML-CODE set to other nonzero values
Fatal EXCEPTION Ignores setting; keeps original XML-CODE value Ignores setting; keeps original XML-CODE value Ignores setting; keeps original XML-CODE value Ignores setting; keeps original XML-CODE value
Warning EXCEPTION (Reason code 800 or 801) Ignores setting; keeps original XML-CODE value Next event is ATTRIBUTE-NAME or START-OF-ELEMENT Ignores setting; keeps original XML-CODE value Ignores setting; keeps original XML-CODE value
END-OF-INPUT Ends immediately; XML-CODE = -11 Next event is END-OF-DOCUMENT2 Next event depends on input2 Fatal runtime error (message 230S)
Normal event Ends immediately; XML-CODE = -11 XML-CODE already 0, no change Fatal runtime error (message 230S) Fatal runtime error (message 230S)
  1. See the related task about terminating XML parsing.
  2. See the related task about parsing documents one segment at a time.
Table 2. Results of processing-procedure changes to XML-CODE with XMLPARSE(COMPAT) in effect
XML event type -1 0

XML-CODE-100,000

Other nonzero value
Encoding-conflict exception (exception codes 50 - 99) Ignores setting; keeps original XML-CODE value Chooses encoding depending on the specific exception code1 Ignores setting; keeps original XML-CODE value Ignores setting; keeps original XML-CODE value
Encoding-choice exception (exception codes > 100,000) Ignores setting; keeps original XML-CODE value Parses using the CODEPAGE value2 Parses using the difference (shown above) as the encoding value2 Ignores setting; keeps original XML-CODE value
Other exception Ignores setting; keeps original XML-CODE value Limited continuation only for exception codes 1 - 493 Ignores setting; keeps original XML-CODE value Ignores setting; keeps original XML-CODE value
Normal event (except START-OF-DOCUMENT) Ends immediately; XML-CODE = -14 [No apparent change to XML-CODE] Ends immediately; XML-CODE = -1 Ends immediately; XML-CODE = -1
START-OF-DOCUMENT Ends immediately; XML-CODE = -14 [No apparent change to XML-CODE] Ends immediately; XML-CODE = -1
  • XML-CODE = 1
  • Else ends immediately; XML-CODE = -1
  1. See the exception codes in the related reference about XML PARSE exceptions with XMLPARSE(COMPAT) in effect.
  2. See the related task about handling encoding conflicts.
  3. See the related task about handling XML PARSE exceptions.
  4. See the related task about terminating XML parsing.

XML generation also uses the XML-CODE special register. For details, see the related task about handling XML GENERATE exceptions.

Related concepts  
How the XML parser handles errors  

Related references  
XML PARSE exceptions with XMLPARSE(XMLSS) in effect

XML PARSE exceptions with XMLPARSE(COMPAT) in effect
  
XML GENERATE exceptions  
XML-CODE (Enterprise COBOL for z/OS Language Reference)  
XML-EVENT (Enterprise COBOL for z/OS Language Reference)