Platform SDK: Active Directory, ADSI, and Directory Services

Schema Interfaces

The schema interface IADsClass is available to represent a directory service class. It is used to represent a provider's directory service class. The IADsProperty interface represents a single or multi-valued property from the directory service. The IADsSyntax interface represents a single VARIANT type.

Providers supplying their own ADSI implementations supply schema management objects supporting these interfaces that reflect their underlying namespace.

Interfaces defined by ADSI can support specific properties and syntaxes, such as IADsUser and IADsOU. For the complete list, see ADSI Interfaces. Providers can choose to extend an ADSI definition by using the methods that create and access properties IADs::Get, IADs::GetEx, IADs::Put, and IADs::PutEx. Providers can also choose to support additional properties through additional interfaces.

The schema container is used to attach a set of schema definitions to part of a provider's namespace tree. Typically, each instance of a namespace has its own schema. For example, in the following figure, the ADSI example provider defines a schema container in each of the root nodes "Seattle" and "Toronto".

ADSI Schema Objects in the Example Provider

An ADSI provider component with a complex namespace might allow multiple schemas to exist in a namespace instance, each at a different part of the tree. An object's IADs::Schema property, however, always names its own the schema definition.