ApacheDS includes 3 new schema descriptions as held within schemaSubentries.
These new descriptions govern how syntax checking is performed and how
searches are conducted by defining the atomic elements composing matchingRules.
Comparator Description Syntax
Comparators determine ordering and hence govern matchingRules used for ordering
with greater than or equal to and less than or equal to filter assertions. The
description for these entities either reference an existing comparator or contain
bytecode for loading and creating a new comparator for use with matchingRules.
Comparators do not have an OID specific to them. Instead they reference the OID
(numeric identifier) of the matchingRule they will be used in conjunction with. So
before a novel matchingRule can be added to the system, a comparator and a normalizer
for that comparator must be added with it's OID.
Here's the description syntax of a comparator according to the ABNF:
ComparatorDescription = LPAREN WSP numericoid ; object identifier [ SP "DESC" SP qdstring ] ; description SP "FQCN" SP fqcn ; fully qualified class name [ SP "BYTECODE" SP base64 ] ; optional base64 encoded bytecode extensions WSP RPAREN ; extensions base64 = *(4base64-char) base64-char = ALPHA / DIGIT / "+" / "/" fqcn = descr 1*( DOT descr ) where: <numericoid> is object identifier assigned to the matchingRule associated with this comparator; DESC <qdstring> is a short descriptive string; FQCN <fqcn> is the fully qualified class name of the comparator's class; BYTECODE <base64> is the base64 encoded byte code for the comparator's class; <extensions> describe extensions.
Normalizer Description Syntax
Normalizers determine how to reduce values down to a canonical representation
which can then be used to compare them. Matching within the directory server
is driving through the combined operation of normalizers and comparators.
MatchingRules use these atomic components to control matching for filter
evalutation.
Like Comparators, Normalizers do not have their own assigned object identifiers (OIDs). Instead their descriptions use the OID of the matchingRule
they are defined for. When adding a matchingRule to the system both a
normalizer and a comparator with it's object identifier must be registered with
the directory server.
Here's the description syntax of a normalizer according to the ABNF:
NormalizerDescription = LPAREN WSP numericId ; object identifier [ SP "DESC" SP qdstring ] ; description SP "FQCN" SP qdstring ; fully qualified class name [ SP "BYTECODE" SP qdstring ] ; optional base64 encoded bytecode extensions WSP RPAREN ; extensions where: [numericoid] is object identifier assigned to the matchingRule associated with this normalizer; DESC [qdstring] is a short descriptive string; FQCN [qdstring] is the fully qualified class name of the normalizer's class; BYTECODE [base64] is the base64 encoded byte code for the normalizer's class; [extensions] describe extensions.