| Title: 2.3 - The Schema |
| NavPrev: 2.2.2-more-search-options.html |
| NavPrevText: 2.2.2 - More search options |
| NavUp: 2-handling-data.html |
| NavUpText: 2 - Handling of data within your directory |
| NavNext: 2.3.1-adding-schema-elements.html |
| NavNextText: 2.3.1 - Adding Schema Elements |
| Notice: 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. |
| |
| # 2.3 - The Schema |
| |
| All the data stored into a LDAP server are structured following a schema, a bit like any DBMS. _Apache Directory Server_ does have a dynamic schema : that means you can modify the schema without having to restart the server. |
| |
| We won't describe in the basic user guide how to manage the schema, this will be extensively described in the _Advanced user guide_, this chapter is just a short introduction. |
| |
| |
| ## Table of content |
| |
| * [2.3.1 - Adding Schema Elements](2.3.1-adding-schema-elements.html) |
| * [2.3.2 - Enabling Schema](2.3.2-enabling-schema.html) |
| |
| ## What is the LDAP schema ? |
| |
| It's a set of elements defining the data structure that can be stored in the server. It defines the following elements : |
| |
| * AttributeType : the type of values that can be stored in an attribute |
| * ObjectClass : the set of AttributeType that can or must be used in an entry |
| * Syntax : The syntax the values must abide to |
| * MatchingRule : The rules used to retrieve the data |
| |
| There are more schema elements which are not currently used in _Apache Directory Server_. |
| |
| The following diagram shows all the interactions between each schema element : |
| |
| ![Schema elements interactions](images/schema-objects.png) |
| |
| ## How do we use it in ApacheDS ? |
| |
| The schema is everywhere in the server : each entry is controlled against the schema when it's added or modified. The schema is a critical part of the server. |
| |
| The _Apache Directory Server_ comes with a predefined schema, which should fit a large part of users need. You may though need to extend it... |
| |
| Hopefully, the schema can be extended. This will be explained in the _Advanced User Guide_. |
| |
| Enough said that you can browse the existing schema using _Apache Directory Studio_ : |
| |
| ![Open Schema Browser](images/open-schema-browser.png) |
| |
| then you get the Schema browser : |
| |
| ![Schema Browser](images/schema-browser.png) |