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

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

See:
          Description

Interface Summary
AttributeType An attributeType specification.
DITContentRule A ditContentRule specification.
DITStructureRule A dITStructureRule definition.
MatchingRule A matchingRule definition.
MatchingRuleUse Represents an LDAP MatchingRuleUseDescription defined in RFC 2252.
MutableSchemaObject A mutable version of the SchemaObject interface.
NameForm A nameForm description.
Normalizer Converts attribute values to a canonical form.
NormalizerMappingResolver A class is used to resolve the normalizer mapping hash used for normalization.
ObjectClass An objectClass definition.
SchemaObject Most schema objects have some common attributes.
Syntax A syntax definition.
SyntaxChecker Used to validate values of a particular syntax.
 

Class Summary
AbstractAttributeType Attribute specification bean used to store the schema information for an attributeType definition.
AbstractMatchingRule The default MatchingRule implementation.
AbstractSchemaObject The abstract base class for all schema object types.
AbstractSyntax An abstract Syntax class.
AbstractSyntaxChecker The abstrcat class implementing common operations for the syntax checking.
AttributeTypeOptions An structure containing a couple of attributeType and options.
DefaultObjectClass Objectclass specification bean used to store the schema information for an objectclass definition.
DescriptionUtils Utility class used to generate schema object specifications.
PrepareString This class implements the 6 steps described in RFC 4518
SchemaUtils Various utility methods for schema functions and objects.
 

Enum Summary
MatchingRuleEnum Type safe enum for a matching rule's comparator and normalizer component usage string.
ObjectClassTypeEnum Type safe enumerations for an objectClass' type.
PrepareString.StringType The type of String we have to normalize
UsageEnum Type safe enum for an AttributeType definition's usage string.
 

Package org.apache.directory.shared.ldap.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 © 2004-2009 The Apache Software Foundation. All Rights Reserved.