5.3. More on the LDIF Format
The LDAP Data Interchange Format (LDIF) is used to represent LDAP entries in a
simple text format. The basic form of an entry is:
#comment
dn: <distinguished name>
<attrdesc>: <attrvalue>
<attrdesc>: <attrvalue>
... |
Lines starting with a '#' character are comments. An attribute description
(attrdesc) may be a simple attribute type like cn or objectClass or 1.2.3 (an
OID associated with an attribute type) or may include options such as
cn;lang_en_US or userCertificate;binary.
A line may be continued by starting the next line with a single space or tab
character. For example:
dn: cn=Barbara J Jensen, dc=example, dc=
com
cn: Barbara J
Jensen
|
is equivalent to:
dn: cn=Barbara J Jensen, dc=example, dc=com
cn: Barbara J Jensen
|
Multiple attribute values are specified on separate lines. e.g.,
cn: Barbara J Jensen
cn: Babs Jensen
|
If an <attrvalue> contains non-printing characters or begins with a space,
a double colon (':'), or a less than ('<'), the <attrdesc> is followed by a
double colon and the base64 encoding of the value. For example, the value "
begins with a space" would be encoded like this:
cn:: IGJlZ2lucyB3aXRoIGEgc3BhY2U= |
You can also specify a URL containing the attribute value. For example, the
following specifies the jpegPhoto value should be obtained from the file
/path/to/file.jpeg.
cn:< file://path/to/file.jpeg |
Multiple entries within the same LDIF file are separated by blank lines. Here's
an example of an LDIF file containing three entries.
# Barbara's Entry
dn: cn=Barbara J Jensen, dc=example, dc=com
cn: Barbara J Jensen
cn: Babs Jensen
objectClass: person
sn: Jensen
# Bjorn's Entry
dn: cn=Bjorn J Jensen, dc=example, dc=com
cn: Bjorn J Jensen
cn: Bjorn Jensen
objectClass: person
sn: Jensen
# Base64 encoded JPEG photo
jpegPhoto:: /9j/4AAQSkZJRgABAAAAAQABAAD/2wBDABALD
A4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQ
ERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVG
# Jennifer's Entry
dn: cn=Jennifer J Jensen, dc=example, dc=com
cn: Jennifer J Jensen
cn: Jennifer Jensen
objectClass: person
sn: Jensen
# JPEG photo from file
jpegPhoto:< file://path/to/file.jpeg |
Notice that the jpegPhoto in Bjorn's entry is base 64 encoded and the jpegPhoto
in Jennifer's entry is obtained from the location indicated by the URL.
Trailing spaces are not trimmed from values in an LDIF file. Nor are multiple
internal spaces compressed. If you don't want them in your data, don't put
them there.