The Directory Server Access Control Model
Understanding the Directory Server Schema
Matching Rule Description Format
Understanding Attribute Syntaxes
The Attribute Syntax Description Format
Commonly Used Attribute Syntaxes
Attribute Type Description Format
Object Class Description Format
Directory Server Object Class Implementation
Understanding DIT Content Rules
DIT Content Rule Description Format
DIT Content Rule Implementation
Understanding DIT Structure Rules
DIT Structure Rule Description Format
DIT Structure Rules and Multiple Schemas
DIT Structure Rule Implementation
Understanding Matching Rule Uses
Matching Rule Use Implementation
Understanding Directory Server Plug-Ins
Attribute types in the directory server do not require any custom logic (beyond that already provided by the associated attribute syntax and matching rules). The attribute type description provides all the information that the directory server needs to define an attribute type. As such, all of the attribute types for use in the directory server should be specified in the schema configuration files. These files exist in the resource/schema directory in the source repository, and they are put in config/schema in the actual directory server instance. The directory server treats these files in much the same way as they are handled in the Sun Java System directory server.
All attribute type objects are instances of the org.opends.server.types.AttributeType class. This class primarily serves as a simple data structure that contains all of the properties of the attribute type description as specified in Attribute Type Description Format. Attribute type objects can be retrieved from the directory server schema using their OIDs or any of their human-readable names.
At the present time, the mechanism used to handle attribute types varies from the LDAPv3 specification in the following ways:
The LDAPv3 specification states that a subordinate attribute type must have the same syntax as the superior type, or a refinement of that syntax. The directory server does not enforce this constraint because it does not have any way to determine whether one attribute syntax is a refinement of the syntax of the supertype.
The directory server does not yet include support for collective attributes.
The synchronization subsystem does not take attribute usage into account (for example, so that attribute types with a usage of dSAOperation are not synchronized).