Reason (XmlParseError property): Difference between revisions
m match syntax table to syntax template, tags and edits  | 
				|||
| Line 1: | Line 1: | ||
{{Template:XmlParseError:Reason subtitle}}  | {{Template:XmlParseError:Reason subtitle}}  | ||
This readOnly property returns an <var>XmlParseErrorReason</var> enumeration value that describes the error that caused the <var>[[XmlParseError_class|XmlParseError]]</var>exception.  | |||
==Syntax==  | ==Syntax==  | ||
| Line 6: | Line 7: | ||
<table class="syntaxTable">  | <table class="syntaxTable">  | ||
<tr><th>%reason</th>  | <tr><th>%reason</th>  | ||
<td>This XmlParseErrorReason enumeration value describes the parsing error.  | <td>This <var>XmlParseErrorReason</var> enumeration value describes the parsing error.  | ||
</td></tr>  | </td></tr>  | ||
<tr><th>  | <tr><th>xmlParsError</th>  | ||
<td>A reference to an instance of   | <td>A reference to an instance of a <var>[[XmlParseError_class|XmlParseError]]</var> object.  | ||
</td></tr>  | </td></tr>  | ||
</table>  | </table>  | ||
| Line 15: | Line 16: | ||
==Usage notes==  | ==Usage notes==  | ||
<ul>  | <ul>  | ||
<li>An XmlParseErrorReason enumeration may have one of the following values,  | <li>An <var>XmlParseErrorReason</var> enumeration may have one of the following values, each of which is demonstrated in the [[#Example|examples]] below.  | ||
each of which is demonstrated in the [[#Example|  | |||
<dl>  | <dl>  | ||
<dt>InvalidUnicodeCharacter  | <dt><var>InvalidUnicodeCharacter</var>  | ||
<dd>The Unicode input contains an invalid character.  | <dd>The Unicode input contains an invalid character.  | ||
<dt>InvalidUTF8Encoding  | <dt><var>InvalidUTF8Encoding</var>  | ||
<dd>The input UTF8 stream is invalid.  | <dd>The input UTF8 stream is invalid.  | ||
<dt>InvalidUTF16Encoding  | <dt><var>InvalidUTF16Encoding</var>  | ||
<dd>The input UTF16 stream is invalid.  | <dd>The input UTF16 stream is invalid.  | ||
<dt>SyntaxError  | <dt><var>SyntaxError</var>  | ||
<dd>A violation of the syntax of an XML document.  | <dd>A violation of the syntax of an XML document.  | ||
<dt>UntranslatableEBCDIC  | <dt><var>UntranslatableEBCDIC</var>  | ||
<dd>The EBCDIC input contains a character that is not translatable to Unicode.  | <dd>The EBCDIC input contains a character that is not translatable to Unicode.  | ||
<dt>UntranslatableISOn  | <dt><var>UntranslatableISOn</var>  | ||
<dd>The ISO-8859-n input contains a character that is not translatable to Unicode.  | <dd>The ISO-8859-n input contains a character that is not translatable to Unicode.  | ||
<dt>UntranslatableUnicode  | <dt><var>UntranslatableUnicode</var>  | ||
<dd>The Unicode input contains a character that is not translatable to EBCDIC.  | <dd>The Unicode input contains a character that is not translatable to EBCDIC.  | ||
This exception can be avoided using the <code>AllowUntranslatable</code>  | This exception can be avoided using the <code>AllowUntranslatable</code>  | ||
| Line 36: | Line 36: | ||
</dl>  | </dl>  | ||
</ul>  | </ul>  | ||
==Example==  | ==Example==  | ||
<ol><li>  | |||
The following template is used to apply the LoadXml deserialization method  | The following template is used to apply the <var>[[LoadXml_(XmlDoc/XmlNode_function)|LoadXml]]</var> deserialization method to a series of test ''input-string'' values to demonstrate the <var>XmlParseError</var> exception output:  | ||
to a series of test ''input-string'' values  | <p class="code">   [[try]]  | ||
to demonstrate the XmlParseError exception output:  |       [[PrintText statement|printText]] {~}: {%d:LoadXml(&'italic(input-string))}  | ||
<p class="code">   |    [[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  | |||
</p>  | </p>  | ||
<ul><li>When called with:  | |||
<p class="code"> '''%d:LoadXml('<a>'):'''  | <p class="code"> '''%d:LoadXml('<a>'):'''  | ||
</p>  | |||
The results are:  | |||
<p class="output">  | |||
  Error Reason: SyntaxError  |   Error Reason: SyntaxError  | ||
  Error Description: XML doc parse error: missing ETag for top  |   Error Description: XML doc parse error: missing ETag for top  | ||
| Line 62: | Line 63: | ||
   - - -  |    - - -  | ||
</p>  | </p>  | ||
<li>When called with:  | |||
<p class="code"> '''%d:LoadXml('<' With 'FF':X With '>')'''  | <p class="code"> '''%d:LoadXml('<' With 'FF':X With '>')'''  | ||
</p>  | |||
The results are:  | |||
<p class="output">  | |||
  Error Reason: UntranslatableEBCDIC  |   Error Reason: UntranslatableEBCDIC  | ||
  Error Description: XML doc parse error: EBCDIC character not  |   Error Description: XML doc parse error: EBCDIC character not  | ||
| Line 71: | Line 75: | ||
   - - -  |    - - -  | ||
</p>  | </p>  | ||
<li>When called with:  | |||
<p class="code"> '''%d:LoadXml('<a>&amp;#x2122;</a>':U)'''  | <p class="code"> '''%d:LoadXml('<a>&amp;#x2122;</a>':U)'''  | ||
</p>  | |||
The results are:  | |||
<p class="output">  | |||
  Error Reason: UntranslatableUnicode  |   Error Reason: UntranslatableUnicode  | ||
  Error Description: XML doc parse error: invalid Unicode  |   Error Description: XML doc parse error: invalid Unicode  | ||
| Line 81: | Line 88: | ||
   - - -  |    - - -  | ||
</p>  | </p>  | ||
<li>When called with:  | |||
<p class="code"> '''%d:LoadXml('FEFF003C33':X)'''  | <p class="code"> '''%d:LoadXml('FEFF003C33':X)'''  | ||
</p>  | |||
The results are:  | |||
<p class="output">  | |||
  Error Reason: InvalidUTF16Encoding  |   Error Reason: InvalidUTF16Encoding  | ||
  Error Description: XML doc parse error: expecting additional  |   Error Description: XML doc parse error: expecting additional  | ||
| Line 91: | Line 101: | ||
   - - -  |    - - -  | ||
</p>  | </p>  | ||
<li>When called with:  | |||
<p class="code"> '''%d:LoadXml('FEFFD800':X)'''  | <p class="code"> '''%d:LoadXml('FEFFD800':X)'''  | ||
</p>  | |||
The results are:  | |||
<p class="output">  | |||
  Error Reason: InvalidUnicodeCharacter  |   Error Reason: InvalidUnicodeCharacter  | ||
  Error Description: XML doc parse error: surrogate point in  |   Error Description: XML doc parse error: surrogate point in  | ||
| Line 100: | Line 113: | ||
   - - -  |    - - -  | ||
</p>  | </p>  | ||
<li>When called with:  | |||
<p class="code"> '''%d:LoadXml('C181':X)'''  | <p class="code"> '''%d:LoadXml('C181':X)'''  | ||
</p>  | |||
The results are:  | |||
<p class="output">  | |||
  Error Reason: InvalidUTF8Encoding  |   Error Reason: InvalidUTF8Encoding  | ||
  Error Description: XML doc parse error: byte 1 of 2 too  |   Error Description: XML doc parse error: byte 1 of 2 too  | ||
| Line 109: | Line 125: | ||
   - - -  |    - - -  | ||
</p>  | </p>  | ||
<li>When called with:  | |||
<p class="code"> '''%d:LoadXml('FF818256':X)'''  | <p class="code"> '''%d:LoadXml('FF818256':X)'''  | ||
</p>  | |||
The results are:  | |||
<p class="output">  | |||
  Error Reason: InvalidUTF8Encoding  |   Error Reason: InvalidUTF8Encoding  | ||
  Error Description: XML doc parse error: attempt to use  |   Error Description: XML doc parse error: attempt to use  | ||
| Line 119: | Line 138: | ||
   - - -  |    - - -  | ||
</p>  | </p>  | ||
<li>When called with:  | |||
<p class="code"> '''%d:LoadXml('EDA080':X)'''  | <p class="code"> '''%d:LoadXml('EDA080':X)'''  | ||
</p>  | |||
The results are:  | |||
<p class="output">  | |||
  Error Reason: InvalidUnicodeCharacter  |   Error Reason: InvalidUnicodeCharacter  | ||
  Error Description: XML doc parse error: invalid Unicode  |   Error Description: XML doc parse error: invalid Unicode  | ||
| Line 127: | Line 149: | ||
  Error Input Hex Value: EDA080  |   Error Input Hex Value: EDA080  | ||
   - - -  |    - - -  | ||
</p>  | </p></ul></ol>  | ||
==See also==  | ==See also==  | ||
{{Template:XmlParseError:Reason footer}}  | {{Template:XmlParseError:Reason footer}}  | ||
Revision as of 12:16, 24 April 2011
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 
AllowUntranslatableoption 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: