Reason (XmlParseError property)
Enumerated cause of the exception (XmlParseError class) This readOnly property returns an XmlParseErrorReason enumeration value that describes the error that caused the XmlParseErrorexception.
Syntax
%xmlParseErrorReason = xmlParseError:Reason
Syntax terms
%reason | This XmlParseErrorReason enumeration value describes the parsing error. |
---|---|
xmlParsError | A reference to an instance of a XmlParseError object. |
Usage notes
- An XmlParseErrorReason enumeration may have one of the following values, each of which is demonstrated in the examples below.
- InvalidUnicodeCharacter
- The Unicode input contains an invalid character.
- InvalidUTF8Encoding
- The input UTF8 stream is invalid.
- InvalidUTF16Encoding
- The input UTF16 stream is invalid.
- SyntaxError
- A violation of the syntax of an XML document.
- UntranslatableEBCDIC
- The EBCDIC input contains a character that is not translatable to Unicode.
- UntranslatableISOn
- The ISO-8859-n input contains a character that is not translatable to Unicode.
- UntranslatableUnicode
- The Unicode input contains a character that is not translatable to EBCDIC.
This exception can be avoided using the
AllowUntranslatable
option of the deserialization method.
Example
-
The following template is used to apply the LoadXml deserialization method to a series of test input-string values to demonstrate the XmlParseError exception output:
try printText {~}: {%d:LoadXml(&'italic(input-string))} catch XmlParseError to %err print ' ' print 'Error Reason:' And %err:Reason:ToString print 'Error Description:' And %err:Description print 'Error Character Position:' And %err:CharacterPosition print 'Error Input Hex Value:' And %err:InputHexValue print ' - - -' end try
- When called with:
%d:LoadXml('<a>'):
The results are:
Error Reason: SyntaxError Error Description: XML doc parse error: missing ETag for top level element near or before position 4 (end of input) Error Character Position: 4 Error Input Hex Value: - - -
- When called with:
%d:LoadXml('<' With 'FF':X With '>')
The results are:
Error Reason: UntranslatableEBCDIC Error Description: XML doc parse error: EBCDIC character not translatable to Unicode near or before position 3 Error Character Position: 3 Error Input Hex Value: FF - - -
- When called with:
%d:LoadXml('<a>&#x2122;</a>':U)
The results are:
Error Reason: UntranslatableUnicode Error Description: XML doc parse error: invalid Unicode character - not translatable to EBCDIC near or before position 5 Error Character Position: 5 Error Input Hex Value: 2122 - - -
- When called with:
%d:LoadXml('FEFF003C33':X)
The results are:
Error Reason: InvalidUTF16Encoding Error Description: XML doc parse error: expecting additional byte of UTF-16 encoding near or before position 2 (end of input) Error Character Position: 2 Error Input Hex Value: 33 - - -
- When called with:
%d:LoadXml('FEFFD800':X)
The results are:
Error Reason: InvalidUnicodeCharacter Error Description: XML doc parse error: surrogate point in UTF-16 input near or before position 1 Error Character Position: 1 Error Input Hex Value: D800 - - -
- When called with:
%d:LoadXml('C181':X)
The results are:
Error Reason: InvalidUTF8Encoding Error Description: XML doc parse error: byte 1 of 2 too low in UTF-8 encoding near or before position 2 Error Character Position: 2 Error Input Hex Value: C181 - - -
- When called with:
%d:LoadXml('FF818256':X)
The results are:
Error Reason: InvalidUTF8Encoding Error Description: XML doc parse error: attempt to use 4-byte UTF-8 encoding of surrogate point near or before position 2 Error Character Position: 2 Error Input Hex Value: FF - - -
- When called with:
%d:LoadXml('EDA080':X)
The results are:
Error Reason: InvalidUnicodeCharacter Error Description: XML doc parse error: invalid Unicode character (surrogate range) near or before position 2 Error Character Position: 2 Error Input Hex Value: EDA080 - - -
- When called with: