title: 6.4 - AttributeType navPrev: 6.3-attribute.html navPrevText: 6.3 - Attribute navUp: 6-ldap-data-structures.html navUpText: 6 - LDAP data structures navNext: 6.5-ava.html navNextText: 6.5 - Ava

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:

ValueDescriptionoptional
OIDAn unique Oid for the AttributeTypeno
NAMEsome names, the fist one being considered as the short name.yes
DESCRA textual description describing the AttributeType role.yes
OBSOLETEA flag indicating if the AttributeType is deprecatedyes
SUPThe AttributeType it inherit fromyes (If SYNTAX is null, can't be null)
EQUALITYThe EQUALITY MatchingRuleyes (if null, and if SUP is not null, takes its SUP's value)
ORDERINGThe ORDERING MatchingRuleyes (if null, and if SUP is not null, takes its SUP's value)
SUBSTRThe SUBSTR MatchingRuleyes (if null, and if SUP is not null, takes its SUP's value)
SYNTAXThe Syntax to followyes (If SUP is null, can't be null)
SINGLE-VALUETells that the AttributeType does not allow more than one valueyes
COLLECTIVEDefine a collective attribute. The AttributeType USAGE must be userApplicationsyes
NO-USER-MODIFICATIONTells that the values can't be modified by the user. The AttributeType USAGE must be operationalyes
USAGEThe kind of AttributeType : one of {userApplications, directoryOperation, directoryOperation, directoryOperation}yes
extensionsServer specific parametersyes

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