PLISAXB サブルーチン

目的

ファイル内にある XML ドキュメントを処理するために XML パーサーを呼び出します。

構文

CALL PLISAXB(e, p, x, c)

パラメーター

e は、イベント構造体です。

p は、パーサーからイベント関数に渡すポインター値またはトークンです。

x は、入力ファイルの文字列式です。

c は、処理対象の XML ドキュメントのコード ページを指定する数値式です。

説明

PLISAXB 組み込みサブルーチンは、libmxml2 XML パーサーに基づく内部 SAX 解析を提供します。24 種類のイベントに対応しており、ファイルを操作できます。入力ファイルの文字列式のコードは ASCII でも EBCDIC でも構いません。

この例は、PLISAXB 組み込みサブルーチンの使用法を示しています。この例では、PLISAXB を呼び出すメイン ルーチンのみが示されており、イベント構造体や型宣言は示されていません。

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 &amp; turkey</meat>'
||  '<filling>Cheese, lettuce, tomato, etc.</filling>'
||  'We should add a <relish> element in future!'.
||  '</sandwich>'
||  ' ';
call plisaxb( eventHandler,
              addr(token),
              addrdata(xmlDocument),
              length(xmlDocument) );
end;

制約事項

If using the -ebcdic option to compile your program, the callback event logic should account for the fact that the data passed back to the call backs is in ASCII, even if the input format was in EBCDIC. Because of this, the data must be translated prior to use within the callbacks. In addition, all reference values passed as a FIXED BIN(31) are for ASCII character encoding.

It is assumed that your program is built using the -bigendian compiler option if operating on an Intel Chip. If compiling your program without using the -bigendian compiler option, then you must convert the parameter types to/from -bigendian prior to use.

次に、既存の z/OS ベースのアプリケーションを移行する場合の考慮事項を示します。

  • PLISAXA および PLISAXB イベント構造の一部である (ただし PLISAXC の一部でない) イベント unknown_attribute_reference (E20) が IBM の SAX プロセッサと同じコンテンツをともなって生成されますが、解析のより早い段階で発生します。
  • イベント unknown_content_reference (E21) の参照は、実際の値に拡張されます。
  • 2 つのイベント start_of_prefix_mapping (E22) および end_of_prefix_mapping (E23) は、IBM の PLISAXA および PLISAXB 機能によって記述されたアプリケーションとの互換性を維持するために現時点ではサポートされません。
  • SAX パーサーを使用する場合は、イベント exception (E24) は 1 回のみ発生してエラーを示し、exception イベントを文字ごとに 1 回発生させることは行いません。イベント exception (E24) の Micro Focus エラー コードのリストについては、「XML パーサーの例外イベント エラー コード」トピックを参照してください。
  • PLISAXB では、第 3 のパラメーターとして、バッチの file://dd:ddname (ddname はファイルを指定する DD 文の名前) の形式でファイル名を受け入れます。入力ファイルを指定する文字列には、先頭または末尾に空白があってはなりません。この形式に該当しない場合は、パラメーター値は実際のファイル名と見なされます。RECFM=F、FB、FS、FBS、LSEQ のファイルのみが、受け入れられる入力です。