Work in progress
This site is in the process of being reviewed and updated.
Introduction
This page is used to describe the MetaSchema using OpenLdap schema syntx, so that it can be loaded into the ou=schema special partition
The MetaSchema schema
This part expose the elements we have to declare to be able to store the schema using a standard schema
Meta top level elements
MetaTop OjectClass
This Meta object is used as the top-level class which will be the mother of all MetaObjects
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.1 NAME MetaTop DESC 'Top level ObjectClass of all Meta objects' SUP top ABSTRACT MUST ( m-oid $ m-description ) )
MetaTop AttributeTypes
We also need to describe all the meta attributeTypes we will use :
name |
ldif form |
---|---|
m-oid |
dn: m-name=m-oid,ou=meta,ou=schema |
m-name |
dn: m-name=m-name,ou=meta,ou=schema |
m-description |
dn: m-name=m-description,ou=meta,ou=schema |
m-obsolete |
dn: m-name=m-obsolete,ou=meta,ou=schema |
m-supObjectClass |
dn: m-name=m-supObjectClass,ou=meta,ou=schema |
m-must |
dn: m-name=m-must,ou=meta,ou=schema |
m-may |
dn: m-name=m-may,ou=meta,ou=schema |
m-typeObjectClass |
dn: m-name=m-typeObjectClass,ou=meta,ou=schema |
m-extensionObjectClass |
dn: m-name=m-extensionObjectClass,ou=meta,ou=schema |
m-supAttributeType |
dn: m-name=m-supAttributeType,ou=meta,ou=schema |
m-equality |
dn: m-name=m-equality,ou=meta,ou=schema |
m-ordering |
dn: m-name=m-ordering,ou=meta,ou=schema |
m-substr |
dn: m-name=m-substr,ou=meta,ou=schema |
m-attributeTypeSyntax |
dn: m-name=m-attributeTypeSyntax,ou=meta,ou=schema |
m-singleValue |
dn: m-name=m-singleValue,ou=meta,ou=schema |
m-collective |
dn: m-name=m-collective,ou=meta,ou=schema |
m-noUserModification |
dn: m-name=m-noUserModification,ou=meta,ou=schema |
m-usage |
dn: m-name=m-usage,ou=meta,ou=schema |
m-extensionAttributeType |
dn: name=m-extensionAttributeType,ou=meta,ou=schema |
m-ruleId |
dn: name=mruleId,ou=meta,ou=schema |
m-form |
dn: name=m-form,ou=meta,ou=schema |
m-supDITStructureRule |
dn: name=m-supDITStructureRule,ou=meta,ou=schema |
m-extensionDITStructureRule |
dn: name=m-extensionDITStructureRule,ou=meta,ou=schema |
m-oc |
dn: name=m-oc,ou=meta,ou=schema |
m-extensionNameForm |
dn: name=m-extensionNameForm,ou=meta,ou=schema |
m-aux |
dn: name=m-aux,ou=meta,ou=schema |
m-not |
dn: name=m-not,ou=meta,ou=schema |
m-extensionDITContentRule |
dn: name=m-extensionDITContentRule,ou=meta,ou=schema |
m-applies |
dn: name=m-applies,ou=meta,ou=schema |
m-extensionMatchingRuleUse |
dn: name=m-extensionMatchingRuleUse,ou=meta,ou=schema |
m-matchingRuleSyntax |
dn: m-name=m-matchingRuleSyntax,ou=meta,ou=schema |
MetaTop ObjectClasses instances
MetaObjectClass
The following text is the description of the MetaObjectClass :
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.2 NAME MetaObjectClass DESC 'Meta definition of the ObjectClass object' SUP MetaTop STRUCTURAL MUST m-name MAY ( m-sup-object-class $ m-must $ m-may $ m-type-object-class $ m-obsolete $ m-extension ) )
MetaAttributeType
The following text is the description of the MetaAttributeType :
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.3 NAME MetaAttributeType DESC 'Meta definition of the AttributeType object' SUP MetaTop STRUCTURAL MUST ( m-name $ m-syntax ) MAY ( m-sup-attribute-type $ m-type-attribute-type $ m-obsolete $ m-equality $ m-ordering $ m-substr $ m-single-value $ m-collective $ m-no-user-modification $ m-usage $ m-extension ) )
MetaSyntax
The following text is the description of the MetaSyntax :
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.4 NAME MetaSyntax DESC 'Meta definition of the Syntax object' SUP MetaTop STRUCTURAL )
MetaMatchingRule
The following text is the description of the MatchingRule :
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.5 NAME MetaMatchingRule DESC 'Meta definition of the MatchingRule object' SUP MetaTop STRUCTURAL MUST m-syntax MAY ( m-obsolete $ m-extensions ) )
MetaDITStructureRule
The following text is the description of the DITStructureRule :
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.6 NAME MetaDITStructureRule DESC 'Meta definition of the DITStructureRule object' SUP top STRUCTURAL MUST ( m-ruleId $ m-form ) MAY ( m-obsolete $ m-supDITStructureRule $ m-extensionDITStructureRule ) )
MetaNameForm
The following text is the description of the NameForm :
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.7 NAME MetaNameForm DESC 'Meta definition of the NameForm object' SUP top STRUCTURAL MUST ( m-oc $ m-must ) MAY ( m-obsolete $ m-may $ m-extensionNameForm ) )
MetaMatchingRuleUse
The following text is the description of the MatchingRuleUse :
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.8 NAME MetaMatchingRuleUse DESC 'Meta definition of the MatchingRuleUse object' SUP top STRUCTURAL MUST ( m-applies ) MAY ( m-obsolete $ m-extensionMatchingRuleUse ) )
MetaDITContentRule
The following text is the description of the DITContentRule :
ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.9 NAME MetaDITContentRule DESC 'Meta definition of the DITContentRule object' SUP top STRUCTURAL MAY ( m-obsolete $ m-aux $ m-must $ m-may $ m-not $ m-extensionDITContentRule ) )
Application to Core Schema
We will express the Core schema using the previously defined Ldap objects :
Country
The country ObjectClass in OpenLdap format :
objectclass ( 2.5.6.2 NAME 'country' DESC 'RFC2256: a country' SUP top STRUCTURAL MUST c MAY ( searchGuide $ description ) )
The Country ObjectClass using the MetaObjectClass definition will be inserted as an entry into the ou=schema partition. As it is declared in core, we use a DN which describe this relationship with the original filer :
dn: name=country, dc=core, ou=schema objectclass: MetaObjectClass objectclass: MetaTop objectClass: top m-oid: 2.5.6.2 m-name: country m-desc: RFC2256: a country m-sup-objectClass: top m-type-objectClass: STRUCTURAL m-must: c m-may: searchGuide m-may: description