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