以下の例の中では次の定義が使用されています。
D text S 200A VARYING
D order DS QUALIFIED
D part 25A VARYING
D quantity 10I 0
ファイル
txt.xml に以下の行が含まれていると想定します。
<?xml version='1.0' ?>
<text><word>Hello</word><word>World</word></text>
ファイル
ord.xml に以下の行が含まれていると想定します。
<?xml version='1.0' ?>
<order>
<part>Jack in a box<discount>yes</discount></part>
<quantity multiplier="10">2</quantity>
</order>
- RPG 変数 text は、独立フィールドです。XML ファイル txt.xml には
text という名前の要素があり、word という名前の子要素が 2 つあります。
text XML 要素
に子要素があり、allowextra オプション
はデフォルトで no に設定されているため、XML-INTO 命令は状況コード 00353 で失敗します。
xml-into(e) text %XML('txt.xml' : 'doc=file');
// %error = *on
// %status = 353
- オプション allowextra=yes が指定されます。子 XML 要素
は無視されます。XML-INTO 命令は成功しますが、
text XML 要素の内容は子 XML 要素のみであるため、
RPG フィールド text で使用可能なデータはありません。
xml-into text %XML('txt.xml' : 'allowextra=yes doc=file';
text = '';
- RPG 変数 order は 2 つのサブフィールドがあるデータ構造
であり、サブフィールド自体はデータ構造ではありません。これらのサブフィールドを表す XML 要素
には子要素や属性があるべきではありませんが、part XML 要素
には discount という 1 つの子があり、quantity XML 要素
には属性 multiplier があります。オプション allowextra=yes が
指定されているため、discount 要素および multiplier 属性
は無視されます。
xml-into order %XML('ord.xml'
: 'doc=file allowextra=yes');
// order.part = "Jack in a box"
// order.quantity = 2