3.2. スキーマファイルの要件

スキーマファイルは、cn=schema エントリーを定義する LDIF 形式を使用します。各属性タイプとオブジェクトクラスがこのエントリーに追加されます。

スキーマファイルの要件は次のとおりです。

  • ファイルは次のエントリーで始まる必要があります。

    dn: cn=schema
  • スキーマファイルには、属性タイプまたはオブジェクトクラス、あるいはその両方を含めることができます。
  • オブジェクトクラス定義は、他のスキーマファイルで定義された属性を使用できます。
  • カスタムスキーマファイルを使用するインスタンスに応じて、次のいずれかの場所に保存します。

    • /etc/dirsrv/slapd-instance_name/schema/ は、この特定のインスタンスでスキーマファイルを使用できるようにします。
    • /usr/share/dirsrv/schema/ は、このホストで実行しているすべてのインスタンスでスキーマファイルを使用できるようにします。
  • デフォルトでは、Directory Server は 99user.ldif ファイルのカスタムスキーマを想定しています。別のファイル名を使用する場合は、以下のようにします。

    • 名前はアルファベット順に 99user.ldif より小さくする必要があります。たとえば、99aaa.ldif は使用できますが、99zzz.ldif は使用できません。
    • カスタムスキーマファイルは、00 から 98 までのコアスキーマファイルの後にロードする必要があるため、名前は 2 桁で始まり、01 より大きくなければなりません。

      Directory Server は、スキーマファイルをアルファベット順に読み取ります。したがって、たとえば、定義 99user.ldif を保存すると、名前が 0001 で始まる標準ファイルの定義がオーバーライドされます。

  • /usr/share/dirsrv/data/ ディレクトリーの標準スキーマファイルを使用する場合は、ファイルを使用するインスタンスに応じて、ファイルを /etc/dirsrv/slapd-instance_name/schema/ または /usr/share/dirsrv/schema/ にコピーします。ただし、宛先ディレクトリーで別のファイル名を使用してください。それ以外の場合は、Directory Server はアップグレード中にファイルの名前を変更し、.bak 接尾辞を追加します。

例3.1 カスタムスキーマファイルの例

dn: cn=schema
objectClasses: ( 2.16.840.1.1133730.2.1.123 NAME 'exampleperson' DESC 'An example
  person object class' SUP top STRUCTURAL MUST dateOfBirth X-ORIGIN 'user defined' )
attributeTypes: ( 2.16.840.1.1133730.2.1.99 NAME 'dateOfBirth' DESC 'For employee
  birthday' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )