# filter-attr

A <filter-class> describes an attribute of the enclosing <filter-class> that is used by a particular instance of a DirXML driver. The attr-name attribute specifies the name of an attribute in eDirectory.

The publisher and subscriber attributes control whether this attribute is synchronized on the respective channels according to the following table. Note that if the channel setting for the object class as a whole is ignore then the setting for individual attributes is ignored.

> Value | Description
> --- | ---
> ignore | Changes to this attribute will not be reported or automatically synchronized.
> notify | Changes to this attribute will be reported but not automatically synchronized.
> sync | Changes to this attribute will be reported and automatically synchronized.
> reset | Changes to this attribute will be reported and will trigger the attribute to be automatically reset to the values from the other channel. It is illegal for both publisher and subscriber to be set to reset for the same attribute.

The merge-authority attribute controls the behavior of the attribute during a merge operation according to the following table:

> Value | Behavior | Valid
> --- | --- | ---
> default | If an attribute is not being synchronized in either channel then no merging occurs. If an attribute is being synchronize in one channel and not the other then all existing values on the destination for that channel will be removed and replaced with the values from the source for that channel. If the source has multi-values and the destination can only accommodate a single value, then only one of the values will be used on destination side, though it is undefined which of those values will be used. If an attribute is being is being synchronize in both channels and both sides can accommodate multiple values, then each side will end up with the union of values present on either side. If an attribute is being is being synchronize in both channels and both sides can accommodate only a single value, the application will end up with the value from eDirectory unless there is no value in eDirectory in which case eDirectory will end up with the value from the application (if any). If an attribute is being is being synchronize in both channels and only one side can accommodate multiple values then single valued side’s value will be added to multi side’s value if not already there, unless there is no value on the single side in which case one of the values (undefined which) will be added to the single side. | Always
> edir | Behaves same as default would behave if the attribute were being synchronized on the subscriber channel and not on the publisher channel. | When synchronizing or notifying on Subscriber channel
> app | Behaves same as default would behave if the attribute were being synchronized on the publisher channel and not on the subscriber channel. | When synchronizing or notifying on Publisher channel
> none | No merging occurs regardless of synchronization. | Always

The publisher-optimize-modify attribute controls whether or not changes to this attribute are examined on the publisher channel to determine the minimal change needed in eDirectory.

### Example

> See <filter> .

## 1. Allowed Content

> EMPTY

## 2. Attributes

> Attribute | Value(s) | Default Value
> --- | --- | ---
> attr-name | CDATA name of the attribute | #REQUIRED
> merge-authority | default | edir | app | none flag that controls how this attribute is merged | default
> publisher | ignore | notify | sync | reset flag that controls publisher channel synchronization | ignore
> publisher-optimize-modify | true | false flag that control optimization of modifications on subscriber channel | true
> subscriber | ignore | notify | sync | reset flag that controls subscriber channel synchronization | ignore

## 3. Content Declaration

> Empty

## 4. Parent Elements

> filter-class
>   behavior of an object class

Top Elements || All Elements || Tree