Context DataObject is used for storing contextual information.
The virtual member manager client application might need to communicate contextual information with virtual member manager. For example, when creating a Person, the client application may need to specify the realm to create the person under. The realm itself is not part of the person data. Another example is that virtual member manager might need the client application to pass in HTTPServletRequest object to determine the IP address. Context DataObject is used for storing this contextual information.
Because the client application might pass arbitrary data to virtual member manager using keys unknown to virtual member manager, the Context data object supports arbitrary key to object mappings.
<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>