api:map
api:map キーワードは、あるアイテムのアトリビュートを別のアイテムのアトリビュートにマップするために使われます。アトリビュートは、あるアイテムから参照され、マップ文字列で指定された新しい名前で別のアイテムに書かれます。api:map キーワードは、destination アイテムを削除しません:これは、単に新しいアトリビュートを追加するだけです。もしくは、destination アイテムにアトリビュートが存在する場合には、それは上書きされ、他のアトリビュートはそのまま残ります。
パラメータ
- to:アトリビュートが書き込まれるアイテムの名前。
- from:アトリビュートが読まれるアイテムの名前。
- map:destination アイテムの中でアトリビュート名を指定するアトリビュート名のリスト、そしてソースアイテムのアトリビュート名。例えば、次のシンタックスを使って、ある接頭辞のアトリビュートを別の接頭辞にマップすることができます。
customer:* = soap:*
有効なアトリビュート名ではない文字は無視され、名前の終わりの境界を示します。
アトリビュートの制御
- このキーワードはコントロールアトリビュートを持ちません。
サンプル
3個のアトリビュートをマップ:マップは、"to" アトリビュート名と、それに続く"from" アトリビュート名です。
<api:set item="item1" attr="var1" value="x"/>
<api:set item="item1" attr="var2" value="y"/>
<api:set item="item2" attr="attr1" value="z"/>
<api:map to="item2" from="item1" map="attr1=var1, attr2=var2"/>
このサンプルでは、item1 のvar1 およびvar2 アトリビュートは、item2 のattr1 、attr2、アトリビュートにそれぞれマップされます。item2 でvalue z に設定されているattr1 アトリビュートは、item1 のvar1 の値x に上書きされます。item2 に存在しないattr2 アトリビュートは、新たに作成され、item1 のvar2 の値y に設定されます。
ある接頭辞のアイテムからの複数のアトリビュートを別の接頭辞のアイテムにマップすることができます。本製品 接頭辞(例えば soap:*)からビジネスドメインの接頭辞(例えば customer:*)に接頭辞を変更する際に便利です。次の例は、soapout アイテムのすべてのsoap:* アトリビュートからcustomer アイテムのcustomer:* 接頭辞を持つアトリビュートへのマッピングを作成します。
<api:map from="soapout" to="customer" map="customer:* = soap:*"/>
すべてのアイテムから別のアイテムにすべてのアトリビュートをコピーする:
<api:map from="copyfrom" to="copyto" map="* = *"/>
関連項目
- api:set:アイテムのアトリビュートを設定する。