XML-SAX イベント処理プロシージャー

イベント処理プロシージャーは、ユーザー作成のプロトタイプ・プロシージャーです。 以下の戻りの型およびパラメーターが必要です。
パラメーター数または戻り値 データ型および引き渡しモード 説明
戻り値 4 バイト整数 (10I 0) 戻り値がゼロの場合、構文解析が継続することを示します。 戻り値がその他の値の場合、構文解析が終了することを示します。
1 – 通信域 任意の型、参照による受け渡し XML-SAX 命令とハンドラーの間、およびハンドラーの連続呼び出しの間の通信に使用される。
2 – イベント 4 バイト整数 (10I 0)、値による受け渡し パーサーにより発見された XML イベント。 *XML_START_ELEMENT などの特殊語を使用して、処理プロシージャー内のイベントを識別できます。 XML イベントを参照してください。
3 – データ ポインター (*)、値による受け渡し パラメーターがイベントに関係ない場合、値は *NULL になります。 それ以外は、イベントのデータへのポインターになります。 *XML_UCS2_REF および *XML_ATTR_UCS2_REF イベントの場合、データは常に UCS-2 データです。 その他のすべてのイベントの場合、データは %XML 組み込み関数の "ccsid" オプションにより指定された CCSID のデータです。
4 – 長さ 8 バイト整数 (20I 0)、値による受け渡し ほとんどのイベントでは、この値は第 3 パラメーターによりポイ ントされたデータの長さ (バイト単位) です。 このパラメーターが特定のイベントに関係ない場合、値は -1 になります。 %XML 組み込み関数の "ccsid" オプションによりデータが UCS-2 で戻されている場合は、この値を 2 で除算し、UCS-2 文字の数を取得する必要があります。

*XML_EXCEPTION イベントの場合、このパラメーターはエラー発生時に構文解析されていた文書の長さになります。

5 – 例外 ID 4 バイト整数 (10I 0)、値による受け渡し 例外 ID。 *XML_EXCEPTION 以外のすべてのイベントの場合、このパラメーターの値はゼロになります。 Rational Development Studio for i ILE RPG プログラマーの手引きの XML 戻りコードのセクションを参照してください。

%HANDLER について詳しくは、%HANDLER (handlingProcedure : communicationArea )を参照してください。

図 1. XML-SAX 処理プロシージャーのプロトタイプの例
D saxHandler      pr            10i 0
D   commArea                          likeds(myCommArea)
D   event                       10i 0 value
D   string                        *   value
D   stringlen                   20i 0 value
D   exceptionId                 10i 0 value