3.1.1 Abstract Data Model

This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.

[MS-WSDS] operates on a collection of directory objects. The Enumerate operation specifies the search filter requesting for selected directory objects matching the filter or only fragments of those selected directory objects, whichever is required. The Pull operation retrieves the objects or fragments of those objects in the context of the previous Enumeration operation. The resultant items out of the Pull operation are a sequence of enumerated directory objects or their fragments. A directory object is a collection of one or more directory attributes. Each directory attribute is a collection of one or more directory attribute values. Directory attribute values are represented as XML elements.

For example, a user might be represented as a directory object. That directory object could have a directory attribute representing the user's given name, containing a single directory attribute value (for example, "John"). It could also have a directory attribute for the user's surname (for example, "Smith"). It might also have a directory attribute for the user's telephone numbers, which could contain multiple directory attribute values, one for each telephone number possessed by that user.

The directory object collection is represented as an XML document. The collection of directory objects containing the directory attributes, the contents of those attributes, and the representation of those directory objects (including their directory attributes and directory attribute values) as an XML document is implementation-defined.<4>