Package org.apache.directory.shared.ldap.model.schema

Contains interfaces and base classes for representing the LDAP schema domain model.

See: Description

Package org.apache.directory.shared.ldap.model.schema Description

Contains interfaces and base classes for representing the LDAP schema domain model. We model the following LDAP schema objects:

An interface is defined for each type of schema object. All these interfaces extend from a common root interface: SchemaObject. Other interfaces have been added to associate some useful behavoir with these objects. These interfaces are listed below:

These interfaces are primitive constructs that help define what some schema objects like a syntax or a matchingRule is in terms of use. Namely these constructs determine how schema objects are applied. For example a syntax exists not only as an OID to be implemented internally by some directory server. It exists to constrain the values of attributes which are associated with the syntax. This function is defined by the SyntaxChecker interface. All syntaxes have a value checker that can apply the syntax to the value to determine if the value is accepted by the syntax. A SyntaxChecker is nothing but a lexical pattern matcher like a regular expression.

Normalizers and Comparators play an important role in controlling matching and hence giving meaning to matchingRules. They respectively define how values are to be reduced to a canonical form and how they are to be compared to match filter assertions to values while conducting a search. This is a very important aspect of the directory and unfortunately it is the least understood. These two interfaces give tangible meaning to what a matchingRule is about making a matchingRule definition more than just an OID tag or place holder but something that can be used.

The extra interfaces above are not SchemaObjects although they play a critical role in defining how schema objects are applied. SchemaObjects are those that you actually get back from a directory server and are part of the protocol. Within a server environment the relevant schema objects will have valid SyntaxCheckers, Normalizers and Comparators. However outside of the this environment these properties MAY be undefined. We hope to make it defined on the client side as well if desired.

Here's what the OID of each element means according to [MODELS ]:

Schema DescriptionNumericoid Description
ObjectClass numericoid is object identifier assigned to this object class;
AttributeType numericoid is object identifier assigned to this attribute type;
MatchingRule numericoid is object identifier assigned to this matching rule;
MatchingRuleUse numericoid is the object identifier of the matching rule associated with this matching rule use description; matching rule uses are [0-1]:[1] cardinality with their respective matchingRule.
Syntax numericoid is object identifier assigned to this LDAP syntax;
DitContentRule numericoid is the object identifier of the structural object class associated with this DIT content rule;
DitStructureRule this now something very special and needs further investigation
NameForm numericoid is object identifier which identifies this name form;

Copyright © 2003-2014 The Apache Software Foundation. All Rights Reserved.