前のトピック: LDIF 内の暗号化、特殊文字、バイナリ データ

次のトピック: CSV

LDIF テンプレート ファイル(LDT)

データ ファイルに含まれる情報は、値の一覧です。 これらの値に意味を与えるには、各フィールドの値が何を表すかを指定する必要があります。 このように指定するには、LDIF テンプレート(LDT)ファイルを定義します。

LDT ファイルは、ディレクトリに含まれるオブジェクトの説明です。 LDT ファイルは、ディレクトリ情報をデータ値に追加するために使用される LDIF ファイル形式に従います。 LDIF ファイルは、空白行で区切られた一連のレコードから構成されます。 レコードは、ディレクトリ エントリを説明する行のシーケンスから構成されます。 CSV ファイルから LDT にフィールドを配置するために、特殊な代入トークンが使用されます。

LDT ファイル内のそれぞれの行は、オブジェクトの説明を使用して CSV データ ファイル内のフィールドをディレクトリの属性または名前にリンクするルールを定義します。 ツールでは、これらのルールを使用して CSV ファイル情報を LDIF ファイル形式に変換できます。

LDT ファイルの形式

LDT ファイル内の各レコードは、そのレベルにおけるエントリの形式を指定します。 それぞれのレコードには、DN および 1 つ以上の属性と値のテンプレート行が含まれます。

ソース csv ファイル内の列の指定には、$ 文字を使用します。 たとえば、$2 は、csv ファイル内の 2 番目の列のエントリ内容と置換されます。 エスケープ文字(\)を $ 文字の前に付けると、$ 記号は文字通りに解釈されます。 \ 文字を表すには、\\ を使用します。

DN 行で代入トークンを使用することで、リーフ ノードとそれらの親を指定できます。 そのため、元の CSV データからの階層を推定できます。 親オブジェクトをテンプレート ファイルに明示的にコード化する必要があり、また、それらは、ファイル内のリーフ オブジェクトの定義より前に、深さが増加する順に指定される必要があります。

代入トークンの直後に以下のリテラル番号を指定するには、以下の例に示す 3 桁のトークン形式を使用します。

...
Description: $00199 \$ $2 \$ $3
...

この LDT ファイルが解釈される場合、csv2ldif プログラムは、列番号の $ の後にある最初の 3 桁を参照します。 この例の場合、$00199 は、CSV の $001 列(すなわち、第 1 列)から代入されると判別され、これに文字 "99" を付加する意味であると解釈されます。 $199 を使用する場合、CSV の 199 番目の列からの値が代入されます。

例: LDIF テンプレート ファイル

# Acme template file - LDIF format
# telephonenumber is a multivalued attribute

dn:ou=$4, o="Acme", c=US
oc:organizationalUnit

dn:cn=$1 $2, ou=$4, o="Acme", c=US
oc:organizationalPerson
surname:$2
title:$3
telephonenumber:+61 3 $5
telephonenumber:+61 3 $6