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-syntax |
dn: m-name=m-syntax,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 |
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