Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

...

The following text is the description of the MetaObjectClass :

Code Block


ObjectClass ( 1.3.6.1.4.1.18060.1.1.0.0.2
    NAME MetaObjectClass
    DESC 'Meta definition of the ObjectClass object'
    SUP MetaTop
    STRUCTURAL
    MUST name
    MAY ( sup $ must $ may $ type $ obsolete $ extension )
)

...

The following text is the description of the MetaAttributeType :

Code Block


ObjectClass ( 1.3.6.1.4.1.18060.1.1.0.0.3
    NAME MetaAttributeType
    DESC 'Meta definition of the AttributeType object'
    SUP MetaTop
    STRUCTURAL
    MUST ( name $ desc $ syntax )
    MAY ( sup $ type $ obsolete $ equality $ ordering $ substr $ single-value $ collective $ no-user-modification $ usage $ extension )
)

...

The following text is the description of the MetaSyntax :

Code Block

ObjectClass ( 1.3.6.1.4.1.18060.1.1.0.0.4
    NAME MetaSyntax
    DESC 'Meta definition of the Syntax object'
    SUP MetaTop
    STRUCTURAL
)

...

The following text is the description of the MatchingRule :

Code Block

ObjectClass ( 1.3.6.1.4.1.18060.1.1.0.0.5
    NAME MetaMatchingRule
    DESC 'Meta definition of the MatchingRule object'
    SUP MetaTop
    STRUCTURAL
    MUST syntax
    MAY ( obsolete $ extensions )
)

Application to Core Schema

We will express the Core schema using the previously defined Lsdap objects :

Country

The country ObjectClass in OpenLdap format :

Code Block

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 :

Code Block

dn: name=country, dc=core, ou=schema
objectclass: MetaObjectClass
objectclass: MetaTop
objectClass: top
oid: 2.5.6.2
name: country
desc: RFC2256: a country
sup: top
type: STRUCTURAL
must: c
may: searchGuide
may: description