XML データを RPG 変数に転送する場合の規則
- 整数、符号なし整数、10 進数 (パック、ゾーン、バイナリー) および浮動小数点の各フィールドの場合、RPG が %INT、%UNS、%DEC、%FLOAT を使用するそれぞれの場合と同様の規則を使用してデータが転送されます。 XML-INTO 命令コードで四捨五入命令拡張が指定された場合は、%INTH、%UNSH および %DECH が使用されます。
- 日付、時間、およびタイムスタンプの各フィールドの場合、RPG が %DATE、%TIME および %TIMESTAMP を使用するそれぞれの場合と同様の規則を使用してデータが転送されます。
形式のデフォルトは、区切り記号を使用した *ISO です。
形式は、要素内の属性 fmt により指定できます。
属性の値は、それぞれの組み込み関数に対して有効な形式にする必要があり、先導するアスタリスクはオプションです。
RPG において複数の区切り記号が許可される形式の場合、デフォルトの区切り記号は、その形式に対する RPG のデフォルト区切り記号です。
例えば、日付フィールドの場合、以下の XML のフラグメントは有効です。
<myDate fmt="DMY/">25/12/04</myDate> <!-- 2004-12-25 --> <myDate fmt="Dmy">25.12.04</myDate> <!-- 2004-12-25 --> <myDate fmt="*cymd0">0971123</myDate> <!-- 1997-11-23 --> - 標識、文字、および UCS-2 の各フィールドの場合、必要に応じて適
切な CCSID 変換が実行されてデータが転送されます。
固定長フィールドは、デフォルトで左寄せで代入されます。
要素内の属性 adjust に "left" または "right" のいずれかの値を使用することにより、調整を指定できます。
例えば、RPG 変数 data が 10 バイトの長
さである場合、以下の XML データでは DATA の値が '␢␢␢␢␢abcde' に設定されます。
<data adjust="right">abcde</data> - グラフィック・フィールドの場合、必要に応じて適切な CCSID 変換が実行され、%GRAPH 組み込み関数と同様の規則を使用してデータが転送されます。 固定長フィールドは、デフォルトで左寄せで代入されます。 要素内の属性 adjust に "left" または "right" のいずれかの値を使用することにより、調整を指定できます。
- ポインターおよびプロシージャー・ポインターの各サブフィールドはサポートされていないため、XML-INTO 命令では無視されます。
- 特別な属性 fmt および adjust は、一致した変数の代入にそれらが関係ない場合、または属性の値が無効である場合には通常の属性として扱われます。
例えば、以下の XML 属性は通常の XML 属性として扱われます。
- 'fmt="abc"'
- "abc" は無効な形式です
- 'adjust=yes'
- "yes" は "adjust" 属性に対して無効な値です
- 'fmt="mdy/"'、数値フィールドで指定された場合
- 'adjust=right'、可変長フィールドで指定された場合
- 属性 fmt および adjust、およびその値は、case オプションにより指定された大/小文字で指定する必要があります。 以下の表には、case オプションの各値に対して有効な属性の例が示されています。
| case オプション | fmt、例 "*MDY/" | adjust、例 "right" |
|---|---|---|
| 指定なし |
|
adjust="right" |
| 'case=lower' |
|
adjust="right" |
| 'case=upper' |
|
ADJUST="RIGHT" |
| 'case=any' |
|
|