6.4 - AttributeType
The AttributeType is one of the most important schema elements. It describes what can be stored into an Entry, its syntax, and the various rules that are to be followed whenever searching for an associated value.
AttributeType are immutable objects, created from the schema, and never changed. One can add a new AttributeType, or delete itfrom the schema, but once it’s added to the schema, it can’t be modified.
Usually, we just use them.
Description
An AttributeType contains the following informations:
Value | Description | optional |
---|---|---|
OID | An unique Oid for the AttributeType | no |
NAME | some names, the fist one being considered as the short name. | yes |
DESCR | A textual description describing the AttributeType role. | yes |
OBSOLETE | A flag indicating if the AttributeType is deprecated | yes |
SUP | The AttributeType it inherit from | yes (If SYNTAX is null, can’t be null) |
EQUALITY | The EQUALITY MatchingRule | yes (if null, and if SUP is not null, takes its SUP’s value) |
ORDERING | The ORDERING MatchingRule | yes (if null, and if SUP is not null, takes its SUP’s value) |
SUBSTR | The SUBSTR MatchingRule | yes (if null, and if SUP is not null, takes its SUP’s value) |
SYNTAX | The Syntax to follow | yes (If SUP is null, can’t be null) |
SINGLE-VALUE | Tells that the AttributeType does not allow more than one value | yes |
COLLECTIVE | Define a collective attribute. The AttributeType USAGE must be userApplications | yes |
NO-USER-MODIFICATION | Tells that the values can’t be modified by the user. The AttributeType USAGE must be operational | yes |
USAGE | The kind of AttributeType : one of {userApplications, directoryOperation, directoryOperation, directoryOperation} | yes |
extensions | Server specific parameters | yes |
An AttributeType has some default elements : it’s not OBSOLETE, has no SUP, is not SINGLE-VALUE, is not COLLECTIVE, can be modified by the user, and has an userApplications USAGE.
You can check some of those elements using the following methods:
- isAncestorOf( AttrbuteType ) : tells if the current AttributeType is the ancestor of another one
- isCollective() : tells if the current AttributeType is a collective attribute
- isDescendantOf( AttributeType ) : tells if the current AttributeType inherits from another one
- isOperational() : tells if the current AttributeType is an Operational Attribute
- isSingleValued() : tells if the current AttributeType does not allow more than one value
- isUser() : tells if the current AttributeType is a User Application AttributeType
- isUserModifiable() : tells if the Attributes usng this AttributeType can be modified on the server