Rational Developer for System z
COBOL for Windows バージョン 7.5 プログラミング・ガイド


XML パーサーが検出する例外の処理

XML パーサーが XML-CODE に入れて渡す例外コードが特定範囲内にある場合、処理プロシージャーを使用して例外イベントを処理できます。

処理プロシージャーで例外イベントを処理するには、次の手順に従います。

  1. XML-CODE の内容を検査します。
  2. 必要に応じて例外を処理します。
  3. XML-CODE を、例外が処理されたことを示すゼロに設定します。
  4. パーサーに制御を戻します。これにより、例外条件がなくなります。

このような方法で例外を処理できるのは、XML-CODE に入れて渡される例外コードが以下の範囲の 1 つに含まれる場合 (エンコードの矛盾が検出されたことを示します) のみです。

XML-CODE に渡される 例外コードが 1 から 49 の範囲内にある例外に対して、限られた例外処理を行うことができます。この範囲内の例外が発生した後、パーサーは、戻る前に XML-CODE がゼロに設定されている場合でも、END-OF-DOCUMENT イベントを除き、それ以上標準イベントをシグナル通知しません。XML-CODE をゼロに設定した場合、パーサーは文書の構文解析を続行し、検出した例外をシグナル通知します (これは、文書内で複数のエラーを発見する方法として有効です。)この範囲の例外発生後の構文解析の終了時に、ON EXCEPTION 句に指定されたステートメントがあればこれに制御が渡され、そうでなければ、XML PARSE ステートメントの終わりに制御が渡されます。特殊レジスター XML-CODE には、パーサーが検出した最新の例外のコードが格納されます。

この他の例外では、パーサーは追加のイベントをシグナル通知せず、ON EXCEPTION 句に指定されているステートメントに制御を渡します。この場合、処理プロシージャーがパーサーに制御を戻す前に XML-CODE をゼロに設定したとしても、XML-CODE には元の例外番号が設定されます。

例外を処理する必要がない場合は、XML-CODE の値を変更しないでパーサーに制御を戻します。パーサーは、ON EXCEPTION 句で指定されたステートメントに制御権を移動します。ON EXCEPTION 句がコーディングされていない場合、制御は XML PARSE ステートメントの終わりに移動します。

XML-CODE の値を元の例外コード以外の非ゼロ値に設定してパーサーに制御を戻した場合、結果は保証されません。

構文解析の終了時点までに未処理の例外がなかった場合は、NOT ON EXCEPTION 句に指定しされたステートメントに制御が渡されます (構文解析の正常終了)。NOT ON EXCEPTION 句をコーディングしなかった場合、制御は XML PARSE ステートメントの終わりに渡されます。特殊レジスター XML-CODE はゼロに設定されます。

関連概念
XML パーサーによるエラーの処理方法
XML-CODE の内容

関連タスク
XML を処理するためのプロシージャーの作成
XML 文書のエンコード方式についての理解
コード・ページの矛盾の処理

関連参照
継続を許可する XML PARSE 例外
継続を許可しない XML PARSE 例外
XML-CODE (「COBOL for Windows 言語解説書」)


ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)