XML パーサーが XML PARSE ステートメ ントから制御を受け取ると、パーサーは XML 文書を解析し、処理中の以下のポ イントで、プロシージャー名-1 に制御を転送します。
制御は、処理プロシージャーが終わりに達した時点で、XML パーサーに戻ります。
パーサーと処理プロシージャー間での制御の交換は、以下のいずれか になるまで続きます。
その後、パーサーは終了して、パーサーまたは処理プロシージャーが 設定した最も新しい値を含む XML-CODE 特殊レジスターによっ て、制御を XML PARSE ステートメントに戻します。
処理プロシージャーに渡される各 XML イベントについては、XML-CODE、 XML-EVENT、および XML-TEXT または XML-NTEXT 特殊レジスターが、個々の イベントに関する情報を含んでいます。 XML-CODE 特殊レジスターの内容は、XML PARSE ス テートメントの実行中および実行後に定義されます。 他のすべての XML 特殊レジスターの内容は、処理プロシージャーの範囲 外では未定義です。
通常のイベントに対して、処理プロシージャーが制御を受け取った 場合、特殊レジスター XML-CODE はゼロを含んでいます。 EXCEPTION イベントに対して は、XML-CODE は、「ILE COBOL プロ グラマーの手引き」で指定されている XML 例外コードのうち 1 つを含んでいます。特殊レジスター XML-EVENT は、「START-OF-DOCUMENT」などのイベント名に設定され ます。 XML-TEXT または XML-NTEXT のいずれか が、『XML-EVENT 特殊レジスター』で説明する ように、イベントに対応する文書の部分を含んでいます。
XML 特殊レジスターに関して詳しくは、『特殊レジスター』を参照してください。
すべての種類の XML イベントに対しては、処理プロシージャ ーが制御をパーサーに戻したとき、XML-CODE がゼロでない場合、それ以上の EXCEPTION イベントなしにパーサーは終了します。処理プロシージャーからパーサー に戻る前に、EXCEPTION でないイベントに対して XML-CODE を -1 に設定する と、ユーザーが開始した例外条件でパーサーは強制的に終了します。 いくつかの EXCEPTION イベントに対しては、処理プロシー ジャーは XML-CODE をゼロに設定し、強制的にパーサーを続行させることができ ますが、以降の結果は予測不能です。 XML-CODE がゼロの場合、XML 文書全体が解析されて しまうか未処理の例外条件が発生するまで、解析は続行します。
解析中、XML PARSE ステートメントを指定したプログラムが、 繰り返し呼び出されてはなりません。
EXCEPTION イベントおよび例外処理に関して詳しくは、 「ILE COBOL プログラマ ーの手引き」を参照してください。