A schema is like a dictionary in that it holds the definition of every type of object known to a directory service. ADSI client applications can browse through a schema to discover the features of any given ADSI implementation. In addition, ADSI supplies schema management interfaces that can be used to communicate with a directory service's underlying schema.
Some schemas are extensible and ADSI providers or third-party suppliers may choose to publish new interfaces or additional properties for existing interfaces there. ADSI clients use this information to determine what features are supported for each directory service.
There are three kinds of schema objects: classes, properties, and syntaxes, each respectively supporting the schema management interfaces IADsClass, IADsProperty, and IADsSyntax.
Note Class is an overloaded term in the software world. There are C++ classes, Java classes, COM classes, and ADSI classes. In this document, the word class, unless otherwise qualified, refers to a category or type of schema object.
ADSI abstracts the schema of every directory service and places it in every top-level root node in the Namespace object. To find out what classes a directory service supports on a given root-node, you enumerate the schema object and get a list of class objects, property objects, and syntax objects. Details of this configuration are discussed in Using the ADSI Schema.