Previous: Return Attributes, Up: Querying Servers

3.1.3 Duplicate Attributes

Directory standards may authorize different instances of the same attribute in a record. For instance the record of a person may contain several email fields containing different email addresses. When using a QI directory server this is difficult to distinguish from attributes having multi-line values such as the postal address that may contain a line for the street and another one for the zip code and city name. In both cases, EUDC will consider the attribute duplicated.

EUDC has several methods to deal with duplicated attributes. The available methods are:

list
Makes a list with the different values of the duplicate attribute. The record is returned with only one instance of the attribute with a list of all the different values as a value. This is the default method that is used to handle duplicate fields for which no other method has been specified.
first
Discards all the duplicate values of the field keeping only the first one.
concat
Concatenates the different values using a newline as a separator. The record keeps only one instance of the field the value of which is a single multi-line string.
duplicate
Duplicates the whole record into as many instances as there are different values for the field. This is the default for the email field. Thus a record containing 3 different email addresses is duplicated into three different records each having a single email address. This is particularly useful in combination with select as the method to handle multiple matches in inline expansion queries (see Inline Query Expansion) because you are presented with the 3 addresses in a selection buffer

Because a method may not be applicable to all fields, the variable eudc-duplicate-attribute-handling-method lets you specify either a default method for all fields or a method for each individual field.

— Variable: eudc-duplicate-attribute-handling-method

A method to handle entries containing duplicate attributes. This is either an alist of elements (attr . method), or a symbol method. The alist form of the variable associates a method to an individual attribute name; the second form specifies a method applicable to all attribute names. Available methods are: list, first, concat, and duplicate (see above). The default is list.