case オプションは、
RPG フィールド名および path オプション内の名前に
一致する XML 名を検索する際に XML-INTO が XML 文書内の
要素名および属性名を解釈する方法を指定します。XML 要素が正しく解釈されないと、
サブフィールド名およびパス内の名前に正しく一致しなくなり、
命令は状況コード 00353 で失敗します。
- lower は、RPG 変数名に一致す
る XML 要素名および属性名が小文字であることを示します。
- upper は、RPG 変数名に一致する XML 要素および属性名が大文字であることを示します。
- any は、RPG 変数名に一致する要素および属性名が大/小文字混合または不明であることを示します。
XML 要素および属性名は、大文字に変換された後、大文字の RPG 変数名と比較されます。
- convert は、XML 文書内の名前が、
RPG 名とのマッチングの前に、有効な RPG 名に変換されることを示します。名前の変換は
以下の手順で実行されます。
- ジョブの *LANGIDSHR 変換テーブルを使用して、
名前に含まれている英字が大文字 A-Z 文字に変換されます。たとえば、次のようになります。
XML 名「èñ-Àúb」は
このステップで「EN-AUB」に変換されます。
- このステップでは、名前に含まれている A-Z でも 0-9 でもないすべての文字 (名前に含まれている 2 バイト文字シーケンスも含む) が
下線文字に変換されます。例えば、名前「EN-AUB#」はこのステップ
で「EN_AUB_」に変換されます。
- 残っている下線はすべてマージされて単一の下線になります。
これには、元の名前にある下線と、前のステップで追加された下線の
両方が含まれます。例えば、
名前「EN-$_AUB」は前のステップで「EN___AUB」に変換され、
このステップで「EN_AUB」に変換されます。
- 結果としてできた名前の先頭文字が下線文字の場合、
その下線文字は名前から削除されます。例えば、名前「_EN_AUB」はこのステップ
で「EN_AUB」に変換されます。
- 注意: 一部の英字は A-Z 文字
に変換されない場合があります。例えば、文字「Ä」はスウェーデン語文字セットでは A とは別の文字なので、
*LANGIDSHR 変換テーブルの使用によって文字「A」にマップされることはありません。スウェーデン語ジョブ
では、XML 名「ABÄC」は変換の最初のステップでは変更されないため、「Ä」文字は最初のステップの後も名前の中に
残ります。「Ä」文字は 2 番目のステップで _ に変換され、
結果としてできる名前は、予期されていた「ABAC」ではなく「AB_C」になります。