2.2.2.2.10.6 Identity Object

The following specifies the Identity object schema:

 <xs:schema xmlns:g="urn:groove.net" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:groove.net" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  
 <xs:element name="fragment">
  <xs:complexType>
  <xs:sequence>
   <xs:element name="ManagedObject">
   <xs:complexType>
    <xs:sequence>
    <xs:element name="Header" type="ObjectHeaderType"/>
    <xs:element name="Body">
     <xs:complexType>
     <xs:sequence>
      <xs:element name="IdentityTemplate">
      <xs:complexType>
       <xs:sequence>
       <xs:element name="ManagementDomainMigration" minOccurs="0">
        <xs:complexType>
        <xs:attribute name="ServerURL" type="xs:string" use="required"/>
        </xs:complexType>
       </xs:element>
       <xs:element name="Contact">
        <xs:complexType>
        <xs:sequence>
         <xs:element name="vCard">
         <xs:complexType>
          <xs:attribute name="Data" type="xs:base64Binary" use="required"/>
         </xs:complexType>
         </xs:element>
         <xs:element name="RelayDevices">
         <xs:complexType>
          <xs:sequence>
          <xs:element name="RelayDevice" maxOccurs="unbounded">
           <xs:complexType>
           <xs:attribute name="AuthorizationToken" type="xs:string"/>
           <xs:attribute name="Certificate" type="xs:base64Binary"/>
           <xs:attribute name="URL" type="xs:string"/>
           </xs:complexType>
          </xs:element>
          </xs:sequence>
         </xs:complexType>
         </xs:element>
         <xs:element name="PresenceDevices">
         <xs:complexType>
          <xs:sequence>
          <xs:element name="PresenceDevice" maxOccurs="unbounded">
           <xs:complexType>
           <xs:attribute name="URL" type="xs:string"/>
           <xs:attribute name="Certificate" type="xs:base64Binary"/>
           <xs:attribute name="AuthorizationToken" type="xs:string"/>
           </xs:complexType>
          </xs:element>
          </xs:sequence>
         </xs:complexType>
         </xs:element>
         <xs:element name="Certificate">
         <xs:complexType>
          <xs:sequence>
          <xs:element name="Certificate">
           <xs:complexType>
           <xs:attribute name="ExpirationDate" 
                       type="xs:double" use="required"/>
           <xs:attribute name="SignerAddress" type="xs:string" use="required"/>
           <xs:attribute name="SignerKeyHash" type="xs:base64Binary" 
                       use="required"/>
           <xs:attribute name="Signature" type="xs:base64Binary" use="required"/>
           </xs:complexType>
          </xs:element>
          </xs:sequence>
         </xs:complexType>
         </xs:element>
         <xs:element name="CustomFields">
         <xs:complexType>
          <xs:attribute name="_95_95Affiliation" type="xs:string" use="required"/>
          <xs:attribute name="_95_95_95Affiliation_95Flags" type="xs:int"
                      use="required"/>
         </xs:complexType>
         </xs:element>
        </xs:sequence>
        </xs:complexType>
       </xs:element>
       <xs:element name="Origin">
        <xs:complexType>
        <xs:sequence>
         <xs:element name="ManagementDomain">
         <xs:complexType>
          <xs:attribute name="Name" type="xs:string" use="required"/>
          <xs:attribute name="DisplayName" type="xs:string" use="required"/>
          <xs:attribute name="ServerURL" type="xs:string" use="required"/>
          <xs:attribute name="Certificate" type="xs:base64Binary" 
                      use="required"/>
         </xs:complexType>
         </xs:element>
        </xs:sequence>
        <xs:attribute name="Name" type="xs:string" use="required"/>
        </xs:complexType>
       </xs:element>
       </xs:sequence>
       <xs:attribute name="Flags" type="xs:int" use="required"/>
      </xs:complexType>
      </xs:element>
     </xs:sequence>
     <xs:attribute name="ComponentResourceURL" type="xs:string" 
                 use="required"/>
     </xs:complexType>
    </xs:element>
    <xs:element name="Signatures">
     <xs:complexType>
     <xs:sequence>
      <xs:element name="Signature" type="ObjectSignatureType"/>
     </xs:sequence>
     </xs:complexType>
    </xs:element>
    </xs:sequence>
    <xs:attribute name="Version" type="xs:string" use="required"/>
   </xs:complexType>
   </xs:element>
  </xs:sequence>
  </xs:complexType>
 </xs:element>
 </xs:schema>

The ObjectHeaderType and the ObjectSignatureType are specified in sections 2.2.2.2.12 and 2.2.2.2.13.

The following table describes the elements and attributes:

XPath

Description

/fragment

Fragment element

/fragment/ManagedObject/@Version

The attribute MUST be "0,0,0,0".

/fragment/ManagedObject/Header

Object header element

/fragment/ManagedObject/Body

Body element

/fragment/ManagedObject/Body/@ComponentResourceURL

The value MUST be  "http://components.groove.net/Groove/Components/Root.osd?Package=net.groove.Groove.SystemComponents.GrooveAccountMgr_DLL&amp;Version=0&amp;Factory=IdentityTemplate".

/fragment/ManagedObject/Body/IdentityTemplate

Identity template element

/fragment/ManagedObject/Body/IdentityTemplate/@Flags

The value MUST be one of the following values:

1: Valid member

3: Disabled member

/fragment/ManagedObject/Body/IdentityTemplate/ManagementDomainMigration

Migration domain element. Omit if no management domain migration.

/fragment/ManagedObject/Body/IdentityTemplate/ManagementDomainMigration/@ServerURL

MUST contain URL of the server to be migrated to.

/fragment/ManagedObject/Body/ IdentityTemplate/Contact

Contact element

/fragment/ManagedObject/Body/IdentityTemplate/Contact/VCard

vCard element

/fragment/ManagedObject/Body/IdentityTemplate/Contact/VCard/@Data

vCard data.

/fragment/ManagedObject/Body/IdentityTemplate/Contact/Certificate

Certificate element

/fragment/ManagedObject/Body/IdentityTemplate/Contact/Certificate/Certificate

Certificate element

/fragment/ManagedObject/Body/IdentityTemplate/Contact/Certificate/Certificate/@ExpirationDate

Expiration date in Coordinated Universal Time (UTC)

/fragment/ManagedObject/Body/IdentityTemplate/Contact/Certificate/Certificate/@Signature

Signature

/fragment/ManagedObject/Body/IdentityTemplate/Contact/Certificate/Certificate/@SignerAddress

Management server URL

/fragment/ManagedObject/Body/IdentityTemplate/Contact/Certificate/Certificate/Certificate/@SignerKeyHash

SHA1 hash of the DER-encoded management server signature public key.

/fragment/ManagedObject/Body/IdentityTemplate/Contact/RelayDevices

Relay devices element

/fragment/ManagedObject/Body/IdentityTemplate/Contact/RelayDevices/RelayDevice

Relay device element

/fragment/ManagedObject/Body/IdentityTemplate/Contact/RelayDevices/RelayDevice/@AuthorizationToken

Pre-authentication token

/fragment/ManagedObject/Body/IdentityTemplate/Contact/RelayDevices/RelayDevice/@Certificate

Relay server's Simple Symmetric Transport Protocol (SSTP) certificate.

/fragment/ManagedObject/Body/IdentityTemplate/Contact/RelayDevices/RelayDevice/@URL

Relay device URL.

/fragment/ManagedObject/Body/IdentityTemplate/Contact/PresenceDevices

Presence server devices element

/fragment/ManagedObject/Body/IdentityTemplate/Contact/PresenceDevices/PresenceDevice

Presence server device element

/fragment/ManagedObject/Body/IdentityTemplate/Contact/PresenceDevices/PresenceDevice/@URL

Presence server device URL

/fragment/ManagedObject/Body/IdentityTemplate/Contact/PresenceDevices/PresenceDevice/@Certificate

Presence server device certificate.

/fragment/ManagedObject/Body/IdentityTemplate/Contact/PresenceDevices/PresenceDevice/@AuthorizationToken

Pre-authentication token

/fragment/ManagedObject/Body/IdentityTemplate/Contact/CustomFields

Custom fields element

/fragment/ManagedObject/Body/IdentityTemplate/Contact/CustomFields/@_95_95Affiliation

Domain affiliation of a member

/fragment/ManagedObject/Body/IdentityTemplate/Contact/CustomFields/@_95_95_95Affiliation_95Flags

The value MUST be 0x4000000.

/fragment/ManagedObject/Body/IdentityTemplate/Origin

Origin element

/fragment/ManagedObject/Body/IdentityTemplate/Origin/@Name

The value MUST be "urn:groove.net:ManagementDomain".

/fragment/ManagedObject/Body/IdentityTemplate/Origin/ManagementDomain

Management domain element

/fragment/ManagedObject/Body/IdentityTemplate/Origin/ManagementDomain/@Certificate

Domain certificate

/fragment/ManagedObject/Body/IdentityTemplate/Origin/ManagementDomain/@DisplayName

Domain display name

/fragment/ManagedObject/Body/IdentityTemplate/Origin/ManagementDomain/@Name

Domain GUID

/fragment/ManagedObject/Body/IdentityTemplate/Origin/ManagementDomain/@ServerURL

Domain server URL

/fragment/ManagedObject/Signatures

Signatures element

/fragment/ManagedObject/Signatures/Signature

Signature element