Conflitos de Nomes para Elementos de Dados do Contexto

A regra de mapeamento para elementos de dados do contexto em um CBE poderia fazer com que eles tivessem o mesmo nome de atributo no evento do Console Corporativo, o que não é permitido pelo servidor de eventos. O mecanismo de mapeamento elimina essa possibilidade incluindo o prefixo "ctx." aos nomes dos atributos criados a partir dos elementos de dados do contexto no evento CBE.

Conflitos com o nome de outro elemento de dados do contexto que já tenha sido mapeado no evento do Console Corporativo fará com que a repetição dos elementos de dados do contexto seja descartada.

Como exemplo, considere um evento CBE com os seguintes elementos de dados do contexto

<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>

Os atributos resultantes e os valores correspondentes no evento do Console Corporativo seriam:

ctx.repeat_count=contextValue
ctx.repeat_count.type=String
ctx.my_Context=contextValue
ctx.my_Context.type=String

O primeiro elemento "repeat_count" tem o mesmo nome de um atributo da classe EVENT no Console Corporativo, mas a inclusão do prefixo ctx evita o conflito de nomes.

O segundo elemento de dados do contexto chamado "my_Context" não é mapeado, pois causaria uma duplicação no nome do atributo no evento resultante do Console Corporativo.

O terceiro elemento de dados do contexto chamado "my:Context" não é mapeado, pois o caractere ":" não é um caractere válido em um nome de atributo para um evento do Console Corporativo e deve ser substituído por um caractere "_" (sublinhado) para que possa ser mapeado como um atributo no evento do Console Corporativo. Como o nome resultante "my_Context" já está sendo utilizado, o elemento de dados do contexto é descartado.

Precedência para Elementos de Dados Estendidos

Os elementos de dados estendidos são mapeados antes dos elementos de dados do contexto. Desse modo, o conflito de nomes entre o nome convertido de um elemento de dados estendidos e o nome convertido de um elemento de dados do contexto fará com que o elemento de dados do contexto seja descartado.

Como exemplo, considere um evento CBE com os seguintes elementos de dados do contexto

<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>

Os atributos resultantes e os valores correspondentes no evento do Console Corporativo seriam:

ctx.my_Context='my value'

O elemento de dados do contexto chamado "my_Context" não é mapeado, pois causaria uma duplicação no nome do atributo no evento resultante do Console Corporativo. Observe que quando há um conflito de nomes em um elemento de dados do contexto, o ctx.ContextDataElement.name.type associado também não é criado.


Tópico Pai

Mapeamento de Elementos de Dados do Contexto no Formato do Evento de Base Comum para o Formato de Evento do Console Corporativo


Downloads | Biblioteca | Suporte | Termos de Uso | Feedback

(C) Direitos Autorais IBM Corporation 1999, 2005. Todos os Direitos Reservados.