allowmissing (デフォルト no)

RPG データ構造のサブフィールドに対して十分な数の XML 要素または属性が XML 文書にない状態の場合は、allowmissing オプションを使用して、この状態をエラーとみなすかどうかを指示できます。 以下の状況では、XML データが欠落しているとみなされます。
  • RPG データ構造 (データ構造サブフィールドも含む) と一致する XML 要素において、すべての RPG サブフィールドに対する属性または子要素がその XML 要素にない場合。
  • RPG データ構造の配列サブフィールドと一致する XML データ において、XML 要素の数が RPG サブフィールド配列の次元より小さい場合。

必要な XML データが検出されず、'allowmissing=yes' が指定されていない場合、その命令は状況コード 00353 (XML が RPG 変数と一致しない) で失敗します。

ヒント: countprefix オプションを使用して、 XML 文書でデータ構造のすべてのサブフィールドに十分な XML データがない状態を処理することもできます。

XML-INTO 命令で指定された配列に対し少ない数の配列要素を使用する場合には、'allowmissing=yes' の指定は必要ありません。 XML 文書に含まれる要素の数が RPG 配列より少ない場合、その命令は失敗しません。 PSDS の 372 から 379 桁目にある「XML 要素の数」サブフィールドを使用して、命令により正常に設定される要素の数を判別できます。

  • no は、データ構造のすべての サブフィールド (データ構造サブフィールドのサブフィールドを含む) に対 し XML データが存在する必要があり、すべてのサブフィールド配列のすべての要素に対しても XML データが存在する必要があることを示します。
  • yes は、サブフィールドおよびサブフィールド配列のすべての要素に対して XML データが存在しない場合に、その命令が失敗しないことを示します。 変数が XML-INTO の第 1 オペランドとして指定された場合、未設定のサブフィールドには命令の実行前と同じ値が保持されます。 %HANDLER が XML-INTO の第 1 オペランドとして指定された場合、処理プロシージャーに渡された配列の未設定のサブフィールドにはそのタイプのデフォルト値 (数値の場合はゼロ、データ値の場合は *LOVAL など) が設定されます。