| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| |
| <HTML> |
| <BODY LANG="en-US" DIR="LTR"> |
| <P> |
| Contains interfaces and base classes for representing the LDAP schema domain |
| model. We model the following LDAP schema objects: |
| </P> |
| |
| <ul> |
| <li>attributeTypes</li> |
| <li>dITContentRules</li> |
| <li>dItStructureRules</li> |
| <li>matchingRules</li> |
| <li>matchingRuleUses</li> |
| <li>nameForms</li> |
| <li>objectClasses</li> |
| <li>syntaxes</li> |
| </ul> |
| |
| <p> |
| 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: |
| </p> |
| |
| <ul> |
| <li>Normalizer</li> |
| <li>Comparator [from SDK]</li> |
| <li>SyntaxChecker</li> |
| </ul> |
| |
| <p> |
| 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. |
| </p> |
| |
| <p> |
| 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. |
| </p> |
| |
| <p> |
| 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. |
| </p> |
| |
| |
| <p> |
| Here's what the OID of each element means according to [<a href= |
| "http://www.ietf.org/internet-drafts/draft-ietf-ldapbis-models-11.txt">MODELS |
| </a>]: |
| </p> |
| |
| <table> |
| <tr><th>Schema Description</th><th>Numericoid Description</th></tr> |
| <tr><td>ObjectClass</td> |
| <td>numericoid is object identifier assigned to this object class;</td> |
| </tr> |
| <tr><td>AttributeType</td> |
| <td>numericoid is object identifier assigned to this attribute type;</td> |
| </tr> |
| <tr><td>MatchingRule</td> |
| <td>numericoid is object identifier assigned to this matching rule;</td> |
| </tr> |
| <tr><td>MatchingRuleUse</td> |
| <td>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. |
| </td> |
| </tr> |
| <tr><td>Syntax</td> |
| <td>numericoid is object identifier assigned to this LDAP syntax;</td> |
| </tr> |
| <tr><td>DitContentRule</td> |
| <td>numericoid is the object identifier of the structural object class |
| associated with this DIT content rule; |
| </td> |
| </tr> |
| <tr><td>DitStructureRule</td> |
| <td>this now something very special and needs further investigation</td> |
| </tr> |
| <tr><td>NameForm</td> |
| <td>numericoid is object identifier which identifies this name form;</td> |
| </tr> |
| </table> |
| |
| </BODY> |
| </HTML> |