2.2 Message Syntax

The properties used by this protocol are maintained on an address book server. The properties are returned by an address book server in one of the following:

  • Various NSPI functions of either the Name Service Provider Interface (NSPI) Protocol, as specified in [MS-NSPI], or the Exchange Server NSPI Protocol, as specified in [MS-OXNSPI].

  • Various response bodies of an HTTP POST method, as specified in [MS-OXCMAPIHTTP].<3>

Alternatively, many of these properties are maintained in an offline address book (OAB) by using the OAB Format and Schema Protocol, as specified in [MS-OXOAB]. The OAB is a collection of address lists, each of which contains Address Book objects and their properties. Refer to [MS-OXOAB] for a list of the properties maintained in OABs.

There are many types of Address Book objects, including but not limited to mail users, distribution lists, address book containers, Resource objects, Department objects, Organization objects, and templates. This protocol does not require values for all properties that are defined for any object type, nor does it limit the properties to those of their own type or those listed in this specification. When a data source, such as an OAB or an address book server, includes properties that are not in this set, the format and meaning of the property is defined by the implementation of that data source.

In all the properties of type PtypString ([MS-OXCDATA] section 2.11.1) that are listed in this document, a request to an address book server of that property with type PtypString8 ([MS-OXCDATA] section 2.11.1) or PtypString is permitted. If a conversion is required, the string will be converted to the type requested by the client, as specified in either [MS-NSPI] or [MS-OXNSPI].

For all of the properties of type PtypString that are listed in this document, an OAB that includes a value for that string property MUST contain exactly one string representation. The internal representation of strings in an OAB that use the OAB Format and Schema Protocol is specified in [MS-OXOAB]. A client that looks up the value for a string property MUST convert the value to the string type that is native to the client before it interprets the value of that property.