You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2018/08/30 05:20:48 UTC

svn commit: r1839632 - /directory/site/trunk/content/api/user-guide/4.1-schema.mdtext

Author: elecharny
Date: Thu Aug 30 05:20:47 2018
New Revision: 1839632

URL: http://svn.apache.org/viewvc?rev=1839632&view=rev
Log:
Updated the schema page

Modified:
    directory/site/trunk/content/api/user-guide/4.1-schema.mdtext

Modified: directory/site/trunk/content/api/user-guide/4.1-schema.mdtext
URL: http://svn.apache.org/viewvc/directory/site/trunk/content/api/user-guide/4.1-schema.mdtext?rev=1839632&r1=1839631&r2=1839632&view=diff
==============================================================================
--- directory/site/trunk/content/api/user-guide/4.1-schema.mdtext (original)
+++ directory/site/trunk/content/api/user-guide/4.1-schema.mdtext Thu Aug 30 05:20:47 2018
@@ -24,4 +24,24 @@ Notice: Licensed to the Apache Software
 
 # 4.1 - Schema
 
-TODO...
\ No newline at end of file
+A **Schema** is a set of elements that are used by the **LDAP Server** to describe the data that are stored. The top two elements are **ObjectClass* and **AttributeType**. An **ObjectClass** is a container, describing what an **LDAP** entry can contain, while an **AttributeType** describe each singe element stored in this container.
+
+The key here is that an **LDAP** entry uses **ObjectClasses** to list all the possible **AttributeTypes** that entry can contain, some of them being mandatory, some other optional.
+
+Now, there is more. We have many other **Schema Objects** that are colateral:
+
+* **LdapComparator** (_ApacheDS_ specific)
+* **DitContentRule**
+* **DitStructureRule**
+* **MatchingRule**
+* **MatchingRuleUse**
+* **NameForm**
+* **Normalizer** (_ApacheDS_ specific)
+* **Syntax**
+* **SyntaxChecker** (_ApacheDS_ specific)
+
+Most of those elements are defined in [RFC 4512](https://tools.ietf.org/html/rfc4512), we have added three others (**LDdapComparator**, **Normalizer** and **SyntaxChecker**) in order to make the server easy to extend by adding some new ones.
+
+Those **SchemaObjects** are used to refine the relation between elements, or define their syntax, or some other constraints. The most important ones are **LdapComparator**, **MatchingRule**, **Normalizer**, **Syntax** and **SyntaxChecker**. All of them have dependencies, exposed in this picture:
+
+![SchemaObjects relationship](images/SchemaObjects.png)