前のトピック: DXsyntax ツールの仕組み

次のトピック: ldifdelta ツール -- LDIF ファイル間の差異の計算

ldif2dxc ツール -- スキーマの LDIF から CA Directory 形式への変換

ldif2dxc ツールを使用して、LDIF 形式の LDAP スキーマを CA Directory スキーマ設定形式(.dxc)に変換します。 このツールは既存の schema.txt ファイルを更新することもできます。

このコマンドの形式は以下のようになります。

ldif2dxc [options] [outfile]
options

以下のオプションの 1 つ以上を示します。

-b badfile

指定されたファイルに不正なスキーマ レコードを書き込みます。

-f file

指定したファイルから入力を読み取ります。

-m map

指定されたマップ ファイルから OID を取得します。

-M oid_arc

未検出の OID を 'oid_arc' から生成します。 たとえば x.y.z. は x.y.z.0、x.y.z.1 などを生成します。x.y.z.34 は x.y.z.34、x.y.z.35 などを生成します。

-x dxcFile

指定された.dxc ファイルで定義されているスキーマを除外します。

-Z schema

指定されたファイルに新規スキーマ定義を DXtools スキーマ ファイル形式で追加します。

outfile

LDIF データが保存されるファイルの名前を指定します。

-H (または任意の存在しないオプション)

使用法およびオプション情報を表示します

例: スキーマの一意部分の変換

new_schema.ldif ファイル内のスキーマを変換します。 この場合、ユーザはすべての外部スキーマには興味があるのではなく、外部ソースに特有のスキーマに興味があります。 ローカル ディレクトリもまた、通常単一の DSA スキーマ グループ ファイル(たとえば dxmanager.dxg)をソースします。

外部ソースに特有のスキーマのみを変換するには、既存のスキーマ ファイルを除外する指示をツールに与えます。 さらに、いかなる内部 DSA スキーマ定義も再定義しないよう、ツールに指示します。

以下のコマンドを入力します。

ldif2dxc -f new_schema.ldif -x dxmanager.dxg new_schema.dxc

例: エラーで変換

new_schema.ldif ファイル内のスキーマを変換している間、ツールは CA Directory とのスキーマ非互換性のためにエラーで停止し、出力を作成しません。 この問題はサポートされていない構文、またはマッチング ルール、または発行されたスキーマにおけるエラーによって引き起こされる場合があります。 こうした場合、すべての不正なスキーマを不正なファイルに書き込み、よいスキーマをユーザの出力ファイルに書き込み続けるようにツールに指示することができます。 不正なファイルを検査し、エラーを修正する(たとえば、サブストリング用の不明瞭なマッチング ルールを削除する)ことが有益かどうかを決定し、次に、必要とするものが得られるまでツールを再実行することができます。

不正なファイルを持ったツールを実行するには、以下のコマンドを入力します

ldif2dxc -b bad.txt -f new_schema.ldif -x dxmanager.dxg new_schema.dxc

例: マップ ファイルで変換

LDAP ディレクトリのなかにはドット区切りの 10 進数文字列(たとえば xyConfig-oid)ではなく OID をラベルとして発行するものがあります。 これらのオブジェクト クラスと属性はディレクトリへロードしません。 代わりに、ツールは、新規スキーマをロードできるように、それらに CA Directory arc から一時 OID を割り当てますが、このソリューションはすべてのディレクトリ実装には適さない場合があります。

これらのオブジェクト クラスおよび属性 OID のドット区切りの 10 進数形式が利用可能な場合、マップ ファイルを作成し、ファイル内のこれらのラベル OID を調べて、ドット区切りの 10 進数 OID によってラベルを代用するようにツールに指示することができます。

マップ ファイルは、たとえば、以下の形式を持った 3 カラムのカンマ区切り値(CSV)ファイルです。

-------------------------------------
#
# format: objectClass, attributeType, oid
#
# objectClasses
xyConfig-oid,,1.2.3.4
xyAdmin-oid,,1.2.3.5
# attributeTypes
,abstract-oid,1.2.4.5
,aci-oid,1.2.4.6
-------------------------------------

オブジェクト クラスまたは属性タイプの両方ではなくいずれかへ、ドット区切りの 10 進数 OID をマップします。

マップ ファイルを持ったツールを実行するには、以下のコマンドを入力します

ldif2dxc -b bad.txt -f new_schema.ldif -m map.txt -x dxmanager.dxg new_schema.dxc

例: ラベル OID で変換

LDIF スキーマ ファイルに多くの "ラベル"OID (たとえば xyConfig-oid)がある場合、マップ ファイル内のすべてにエントリを追加するには長い時間がかかる場合があります。 任意のラベル OID の代わりにツールが使用する OID アークを指定して、それが見つける各ラベル OID に対してインクリメントするという選択肢もあります。

ユーザのアークが新しい場合、ユーザは後続の '.' でそれを指定できます。また、ツールは 0 からそれをインクリメントし始めます。 いくつかの OID がこの OID アークに対してすでに割り当てられている場合、ユーザは次の利用可能な OID を指定できます。また、ツールはそこからインクリメントし始めます。

UNIX システム上で、Example 15 内のマップ ファイルを "1.22.333.444." の新しい OID アークに置換するには、以下を入力します。

ldif2dxc -b bad.txt -f new_schema.ldif -M 1.22.333.444. -x dxmanager.dxg -Z $DXHOME/bin/schema.txt new_schema.dxc

ツールが new_schema.ldif 内の OID ラベル xyConfig-oid に遭遇すると、ツールはそれに 1.22.333.444.0 の OID を割り当てます。 その後、ツールが OID ラベル abConfig-oid に遭遇すると、ツールはそれに 1.22.333.444.1 の OID を割り当てる、というふうになります。

このアークから 20 の OID が割り当てられれば、次の利用可能な OID は 1.22.333.444.20 です。 new_schema2.ldif からのスキーマとの別の統合を実行する場合は、UNIX システム上でディレクトリの既存の OID とぶつからないようにするために、以下を入力します。

ldif2dxc -b bad.txt -f new_schema2.ldif -M 1.22.333.444.20 -x dxmanager.dxg -Z $DXHOME/bin/schema.txt new_schema2.dxc

ツールが new_schema.ldif 内の OID ラベル cdConfig-oid に遭遇すると、ツールはそれに 1.22.333.444.0 の OID を割り当てます。 その後、ツールが OID ラベル efConfig-oid に遭遇すると、ツールはそれに 1.22.333.444.21 の OID を割り当てる、というふうになります。

例: OpenLDAP SLAMD スキーマの変換

OpenLDAP SLAMD は非標準のスキーマ表現です

ただし、ldif2dxc は他のそのようなスキーマ タイプに寛容です。

ldif2dxc -f slamd.openldap.conf -x x500.dxc slamd.openldap.conf.dxc