4.1 - Schema Manager (...)

Apache DS has to keep the schema elements available from all the parts of the server. This is done through what we call the SchemaManager. It hides all the internal structure from the users.


The SchemaManager stores all the Schema elements (AttributeTypes (e), ObjectClasses (e), ... Internally, we store those elements into the Registries, which are hives where each Schema Objects are stored.

From the user point of view, the SchemaManager is seen as a representation of the available schemas. It can of course be extended, or modified, by adding or removing some schema elements.

The server has one instance of a SchemaManager, which is used internally, and a user won't control it, in any case. On the client side, we can load a SchemaManager either from the server (and then we have a duplicated instance), or from existing schema files. We can even create a brand new SchemaManager and fill it with all what we need.


The SchemaManager stores all the 11 kind of schema elements :

ObjectClasses (e)
AttributeTypes (...)
Syntaxes (e)
MatchingRules (e)
DITContentRules (e)
DITStructureRules (e)
NameForms (e)
MatchingRuleUses (e)
SyntaxChecker (e)
Normalizer (e)
LdapComparator (e)

The last three elements are ApacheDS specific.

All those elements have some tight relationships. The following schema expose all the relations between all those elements :

Using a SchemaManager