コンテキスト・データ・エレメントの名前の競合

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 イベント・フォーマットへのマッピング


ダウンロード | ライブラリー | サポート | ご利用条件 | フィードバック

(C) Copyright IBM Corporation 1999,2005. All Rights Reserved.
(C) Copyright IBM Japan 2006