Context DataObject é utilizado para armazenar informações contextuais.
O aplicativo cliente do virtual member manager pode precisar comunicar informações contextuais com o virtual member manager. Por exemplo, ao criar uma Person, o aplicativo cliente pode precisar especificar a região sob a qual será criada a pessoa. A própria região não é parte dos dados da pessoa. Um outro exemplo é que o virtual member manager poderia precisar que o aplicativo cliente transmitisse no objeto HTTPServletRequest para determinar o endereço IP. O Context DataObject é utilizado para armazenar essas informações contextuais.
Porque o aplicativo cliente poderia transmitir dados arbitrários para o virtual member manager utilizando chaves desconhecidas ao virtual member manager, o objeto de dados Contexto suporta chave arbitrária para mapeamentos de objeto.
<xsd:complexType name="Context">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="key" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="value" type="xsd:anySimpleType"/>
</xsd:sequence>
</xsd:complexType>
<wim:contexts>
<wim:key>Realm</wim:key>
<wim:value>realmA</wim:value>
</wim:contexts>