e は、イベント構造体です。
p は、パーサーからイベント関数に渡すポインター値またはトークンです。
x は、処理対象の XML ドキュメントを含むバッファーのアドレスです。
n は、x で指定したバッファー内のデータのバイト数です。
c は、処理対象の XML ドキュメントのコード ページを指定する数値式です。
この例は、PLISAXA 組み込みサブルーチンの使用法を示しています。この例では、PLISAXA を呼び出すメイン ルーチンのみが示されており、イベント構造体や型宣言は示されていません。
dcl token char(8); dcl xmlDocument char(4000) var; xmlDocument = '<?xml version="1.0" standalone="yes"?>' || '<!--This document is just an example-->' || '<sandwich>' || '<bread type="baker"s best"/>' || '<?spread please use real mayonnaise ?>' || '<meat>Ham & turkey</meat>' || '<filling>Cheese, lettuce, tomato, etc.</filling>' || 'We should add a <relish> element in future!'. || '</sandwich>' || 'junk'; call plisaxa( eventHandler, addr(token), addrdata(xmlDocument), length(xmlDocument) ); end;
-ebcdic オプションを使用してプログラムをコンパイルする場合、コールバック イベント ロジックでは、入力フォーマットが EBCDIC であってもコールバックに渡されるデータは ASCII であることが考慮されている必要があります。このため、データは使用前にコールバック内で変換される必要があります。さらに、FIXED BIN(31) として渡されるリファレンス値はすべて、ASCII 文字エンコーディング用です。
Intel Chip 上でプログラムが動作している場合、そのプログラムは -bigendian コンパイラ オプションを使用してビルドされたものと見なされます。-bigendian コンパイラ オプションを使用せずにプログラムをコンパイルした場合は、使用前に -bigendian に対するパラメーター タイプの変換が必要になります。
次に、既存の z/OS ベースのアプリケーションを移行する場合の考慮事項を示します。
説明
PLISAXA 組み込みサブルーチンは、libmxml2 XML パーサーに基づく内部 SAX 解析を提供します。24 種類のイベントに対応しており、XML 文字列をポイントするメモリ アドレスを操作できます。この文字列のコードは ASCII でも EBCDIC でも構いません。