CBE のコンテキスト・データ・エレメントのマッピング・ルールに従うと、コンテキスト・データ・エレメントが Enterprise Console イベントと同じ属性名を持ってしまう場合があります。これはイベント・サーバーでは許可されません。マッピング機構により、CBE イベントのコンテキスト・データ・エレメントから作成された属性名に接頭部「ctx.」が追加されることによって、その可能性が除去されます。
既に Enterprise Console イベントにマップされている別のコンテキスト・データ・エレメントの名前と競合すると、繰り返し出現するコンテキスト・データ・エレメントは廃棄されます。
例として、以下のコンテキスト・データ・エレメントを持つ CBE イベントを考えてみましょう。
<CommonBaseEvent ...> <contextDataElements name="repeat_count" type="String"> <contextValue>contextValue</contextValue> </contextDataElements> <contextDataElements name="my_Context" type="String"> <contextValue>contextValue</contextValue> </contextDataElements> <contextDataElements name="my_Context" type="other_type"> <contextId>http://www.ibm.com</contextId> </contextDataElements> <contextDataElements name="my:Context" type="other_type"> <contextId>http://www.ibm.com</contextId> </contextDataElements> ... </CommonBaseEvent>
Enterprise Console イベントの結果の属性と対応する値は以下のとおりです。
ctx.repeat_count=contextValue ctx.repeat_count.type=String ctx.my_Context=contextValue ctx.my_Context.type=String
最初のエレメント 「repeat_count」は、Enterprise Console の EVENT クラスの属性と同じ名前ですが、接頭部 ctx によって名前の競合が回避されています。
結果の Enterprise Console イベントで属性名が重複してしまうため、2 番目のコンテキスト・データ・エレメント 「my_Context」はマップされません。
「:」は Enterprise Console イベントの属性名としては無効で、「_」(アンダースコアー) に置き換えてから Enterprise Console イベントの属性にマップする必要があるため、3 番目のコンテキスト・データ・エレメント 「my:Context」はマップされません。作成される名前 「my_Context」は既に使用されているため、このコンテキスト・データ・エレメントは廃棄されます。
拡張データ・エレメントは、コンテキスト・データ・エレメントの前にマップされます。その意味で、 拡張データ・エレメントの変換された名前とコンテキスト・データ・エレメントの変換された名前が競合していると、コンテキスト・データ・エレメントが廃棄されることになります。
例として、以下のコンテキスト・データ・エレメントを持つ CBE イベントを考えてみましょう。
<CommonBaseEvent ...> <extendedDataElements name="ctx.my_Context" type="string"> <values>my value</values> </extendedDataElements> <contextDataElements name="my_Context" type="other_type"> <contextId>http://www.ibm.com</contextId> </contextDataElements> ... </CommonBaseEvent>
Enterprise Console イベントの結果の属性と対応する値は以下のとおりです。
ctx.my_Context='my value'
結果の Enterprise Console イベントで属性名が重複することになるため、コンテキスト・データ・エレメント 「my_Context」 はマップされません。コンテキスト・データ・エレメントで名前の競合が存在する場合、関連する ctx.ContextDataElement.name.type も作成されません。
Common Base Event フォーマットのコンテキスト・データ・エレメントの Enterprise Console イベント・フォーマットへのマッピング