例外イベントが発生すると、パーサーは特殊レジスター XML-CODE を例外を識別する値に設定します。 XMLPARSE コンパイラー・オプションの設定および XML-CODE の値によっては、パーサーが処理を続行できる場合があります。
XMLPARSE(XMLSS) の場合
XMLPARSE(XMLSS) コンパイラー・オプションが有効である場合、パーサーは例外イベントが発生すると処理を続行しません。 パーサーは、処理プロシージャーで XML-CODE 特殊レジスターに行った変更を無視します。 XML PARSE ステートメントの最後にある XML-CODE の値は、パーサーが設定した値であり、元の例外コードを示します。 処理プロシージャーが例外イベント後にパーサーに戻ると、制御は、ON EXCEPTION 句で指定したステートメント、または XML PARSE ステートメントの最後 (ON EXCEPTION 句をコーディングしていない場合) に渡ります。XMLPARSE(XMLSS) オプションが有効である場合に可能な例外の指定については、 z/OS XML システム・サービスに関する下記の関連参照を参照してください。
XMLPARSE(COMPAT) の場合
XMLPARSE(COMPAT) コンパイラー・オプションが有効である場合、パーサーは例外イベント後も処理を続行できます。 たとえば、関連例外コードが次の範囲のいずれかであれば、パーサーは処理を続行することができます。
表 1 は、パーサーが処理を続行できる例外コードを示しています。
この表には、それぞれの例外と、例外発生後の続行要求時にパーサーが実行するアクションを記述しています。 記述の中には、以下の用語を使用しているものがあります。
用語の定義については、以下の関連タスクの『XML 文書のエンコード方式についての理解』を参照してください。
| コード | 説明 | 継続されるパーサーのアクション |
|---|---|---|
| 1 | パーサーで、エレメントの内容に含まれない空白文字を走査中に、無効文字が見つかりました。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 2 | パーサーで、エレメント内容に含まれない、処理命令、エレメント、コメント、または文書タイプ宣言の無効な開始が見つかりました。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 3 | パーサーで、重複する属性名が見つかりました。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 4 | パーサーで、属性値にマークアップ文字 '<' が見つかりました。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 5 | エレメントの開始および終了タグ名が一致しません。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 6 | パーサーで、エレメント内容に無効文字が見つかりました。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 7 | パーサーで、エレメント内容に、エレメント、コメント、処理命令、または CDATA セクションの無効な開始が見つかりました。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 8 | パーサーで、エレメント内容に、一致する開始文字シーケンス '<![CDATA[' のない、CDATA 終了文字シーケンス ']]>' が見つかりました。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 9 | パーサーで、コメント内に無効文字が見つかりました。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 10 | パーサーで、コメント内に、後にパーサーで、コメント内に、後に '>'が付いていない 文字シーケンス '--' (2 つのハイフン) が 見つかりました。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 11 | パーサーで、処理命令データ・セグメント内に無効文字が見つかりました。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 12 | 処理命令ターゲット名が、小文字、大文字、または大/小文字混合の 'xml' でした。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 13 | パーサーで、16 進文字参照 (形式 � の) 内に無効な数字が見つかりました。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 14 | パーサーで、10 進数文字参照 (形式 &#dddd; の) 内に無効な数字が見つかりました。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 15 | XML 宣言内のエンコード宣言値が小文字または大文字の A から Z で始まっていませんでした。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 16 | 文字参照が適切な XML 文字を参照しませんでした。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 17 | パーサーで、エンティティー参照名に無効文字が見つかりました。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 18 | パーサーで、属性値に無効文字が見つかりました。 | パーサーは、文書の終わりに到達するまで、あるいは継続不能の原因となるエラーを検出するまで、エラーの検出を継続します。パーサーでは、END-OF-DOCUMENT イベントを除き、追加の標準イベントをシグナル通知しません。 |
| 70 | 実際の文書エンコードは EBCDIC であり、 CODEPAGE コンパイラー・オプションではサポートされる EBCDIC コード・ページが指定されていましたが、文書エンコード宣言ではサポートされる EBCDIC コード・ページが指定されていませんでした。 | パーサーは、CODEPAGE コンパイラー・オプションで指定されたエンコードを使用します。 |
| 71 | 実際の文書エンコードは EBCDIC であり、文書エンコード宣言ではサポートされる EBCDIC エンコードが指定されていましたが、CODEPAGE コンパイラー・オプションはサポートされる EBCDIC コード・ページを指定していませんでした。 | パーサーは、文書エンコード宣言で指定されたエンコードを使用します。 |
| 72 | 実際の文書エンコードは EBCDIC ですが、 CODEPAGE コンパイラー・オプションではサポートされる EBCDIC コード・ページが指定されておらず、文書はエンコード宣言を含んでいませんでした。 | パーサーは、EBCDIC コード・ページ 1140 (USA、カナダ、. . . ユーロ国別拡張コード・ページ) を使用します。 |
| 73 | 実際の文書エンコードは EBCDIC ですが、 CODEPAGE コンパイラー・オプションおよび文書エンコード宣言のどちらにもサポートされる EBCDIC コード・ページが指定されていませんでした。 | パーサーは、EBCDIC コード・ページ 1140 (USA、カナダ、. . . ユーロ国別拡張コード・ページ) を使用します。 |
| 82 | 実際の文書エンコードは ASCII ですが、文書はエンコード宣言を含んでいませんでした。 | パーサーは、ASCII コード・ページ 819 (ISO-8859-1 Latin 1/オープン・システム) を使用します。 |
| 83 | 実際の文書エンコードは ASCII ですが、文書エンコード宣言ではコード・ページ 813、819、および 920 のいずれも指定されていませんでした。 | パーサーは、ASCII コード・ページ 819 (ISO-8859-1 Latin 1/オープン・システム) を使用します。 |
| 92 | 文書データ項目は英数字でしたが、実際の文書エンコード は Unicode UTF-16 でした。 | パーサーはコード・ページ 1200 (Unicode UTF-16) を使用します。 |
| 100,001 から 165,535 | CODEPAGE コンパイラー・オプションおよび 文書エンコード宣言に指定された、サポートされる EBCDIC コード・ページが それぞれ異なっていました。 XML-CODE には、エンコード宣言に 100,000 をプラスするためのコード・ページ CCSID が含まれています。 | EXCEPTION イベントから戻る前に、XML-CODE をゼロに設定した場合、パーサーでは、CODEPAGE コンパイラー・オプションによって指定したエンコードが使用されます。 文書エンコード宣言に対して (100,000 を減算して) XML-CODE を CCSID に設定した場合、パーサーではこのエンコードが使用されます。 |
関連概念
XML-CODE
関連参照XMLPARSE
z/OS XML System Services User's Guide and Reference (SA23-1350)