例外

大半の例外では、例外の検出場所まで (その場所を含む) が解析されたドキュメントの部分が、XML テキストに含まれています。解析の開始前に示される競合的例外のエンコーディングでは、XML テキストの長さがゼロか、またはドキュメントによるエンコーディング宣言の値が XML テキストに含まれています。

例外の種類には次があります。

例外イベント機能からゼロ以外の戻りコードが返されると、通常はパーサーがドキュメントの処理を停止して、PLISAXA または PLISAXB ビルトインを呼び出したプログラムに制御を戻す原因になります。

継続可能な例外では、例外イベント機能からゼロ戻りコードが返されると、さらに例外が発生する可能性があっても、ドキュメントの処理を続行するようにパーサーに指示が伝わります。

100,001 から 165,535 と 200,001 から 265,535 の範囲の例外番号によって、特殊なケースが例外に適用されます。これらの例外コード範囲は、ドキュメントの CCSID (エンコーディング宣言を含むドキュメントの開始部分を調べて判定される) が呼び出しビルトインによって (明示的または暗示的に) 提供される CCSID 値と同一でない (両方の CCSID が同じ基本的なエンコーディング、EBCDIC または ASCII の CCSID であっても) ことを示します。これらの例外では、例外イベントに渡される例外コードには、ドキュメントの CCSID、そして EBCDIC CCSID には 100,000 または ASCII CCSID には 200,000 が含まれています。たとえば、例外コードが 101,140 の場合、ドキュメントの CCSID は 01140 です。PLISAXA または PLISAXB ビルトインによって提供されるこの CCSID 値は、呼び出しで最後の引数として明示的に設定されるか、または最後の引数が省略され CODEPAGE コンパイラ オプションの値が使用される場合に暗黙的に設定されます。

これらの CCSID 競合例外の例外イベント機能から戻された後の戻りコードの値に応じて、パーサーは次のアクションのいずれかを実行します。