The schema container contains a set of schema definitions that are attached 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".
To create an ADSI implementation for a provider, you need to supply schema management objects that reflect the provider's underlying namespace and which support ADSI schema interfaces. The following is a list of the ADSI schema interfaces, which are contained in the schema container.
Interfaces defined by ADSI can support specific properties and syntaxes for your provider. Providers can choose to extend an ADSI definition by using the methods that create and access properties, for example, you can use the methods of the IADs interface such as Get, GetEx, Put and PutEx. Providers can also support additional properties through additional interfaces. For a complete list of ADSI interfaces, see ADSI Interfaces.
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 schema definition.