D info DS QUALIFIED
D type 25A VARYING DIM(2)
D ns_type 10A VARYING DIM(2)
D qty 10I 0
D price 7P 3
D ns_price 10A VARYING
<abc:info xmlns:abc="http://www.abc.xyz"
xmlns:def="http://www.def.xyz">
<abc:type>Chair</abc:type>
<abc:qty>3</abc:qty>
<def:type>Modern</def:type>
<abc:price>79.99</abc:price>
</abc:info>
RPG プログラマーが、RPG サブフィールドのうちのいくつかと一致する XML 名に 使用される名前空間を取得できるように、XML-INTO のオプション ns=remove nsprefix=ns_ が 指定されます。オプション nsprefix=ns_ は、 NS_ で始まるサブフィールドが、名前空間値を保持する候補であることを 示します。
この XML 文書には、RPG サブフィールド TYPE にマップされる 要素が、abc:type と def:type の 2 つあります。
名前空間が除去された後、名前が type の XML 要素が 2 つあるため、TYPE サブフィールド は DIM(2) を指定して定義されます。NS_TYPE サブフィールド も DIM(2) を指定して定義されていて、XML-INTO は、 TYPE サブフィールドに一致する XML 名の各オカレンスの名前空間値を入れることができます。
XML-INTO は、XML 名 abc:type を処理するときに、TYPE(1) サブフィールド を値 'Chair' に設定し、NS_TYPE(1) サブフィールド を値 'abc' に設定します。
XML-INTO は、XML 名 def:type を処理するときに、 TYPE(2) サブフィールドを値 'Modern' に設定し、 NS_TYPE(2) サブフィールドを値 'def' に設定します。
XML-INTO は、XML 名 abc:qty を処理するときに、QTY サブフィールド を値 3 に設定します。NS_QTY という名前のサブフィールドはないため、 名前空間値がサブフィールドに保存されることはありません。
XML-INTO は、XML 名 abc:price を処理するときに、PRICE サブフィールド を値 79.99 に設定し、NS_PRICE サブフィールドを値 'abc' に設定します。
xml-into info %xml('info3.xml'
: 'doc=file ns=remove nsprefix=ns_');
// info.type(1) = 'Chair'
// info.ns_type(1) = 'abc'
// info.type(2) = 'Modern'
// info.ns_type(2) = 'def'
// info.qty = 3
// info.price = 79.99
// info.ns_price = 'abc'