Afin de répondre à la problématique des profils multiples, SUPANN définit une syntaxe d'attributs dite attribut composite.
Les attributs composites contiennent des valeurs structurées, constituées d'une succession ordonnée de champs comportant chacun une clé et une valeur.
Leur usage principal est d'associer entre elles des valeurs d'autres attributs du même objet, dits élémentaires, lorsque ceux-ci contiennent plusieurs valeurs; chaque champ du composite correspondant à un attribut élémentaire.
Une valeur d'attribut composite obéit à la syntaxe suivante:
[cle1=valeur1][cle2=valeur2][cle3=valeur3]…
Chaque champ est composé des éléments suivants :
Règles:
Un attribut composite peut évoluer, mais uniquement par:
Pour permettre le requêtage par champs comme montré ci-dessous dans de bonnes conditions, les attributs composites doivent être indexés en sub (sous-chaînes). Voir: Types d'indexation des attributs.
Dans un contexte LDAP, les attributs composites peuvent être utilisés en recherche, avec un filtre du type suivant :
(attributComposite=*[cleX=valeurX]*[cleY=valeurY]*[cleZ=valeurZ]*)
cleX, cleY et cleZ représentent les clés des champs utilisés comme critères pour recherche souhaitée. Il peut s'agir de champs contigus ou non contigus. Ils peuvent être en nombre quelconque, jusqu'à concurrence du nombre total de champs défini pour cet attribut.
L'ordre des champs (cleX=valeurX, cleY=valeurY, …) dans le filtre doit respecter celui imposé dans la définition de l'attribut composite: les champs ne sont pas commutatifs.
Remarque: Contrairement aux règles applicables aux attributs “élémentaires”, du fait de la syntaxe utilisée il n'est pas possible de faire une recherche approximative (sous-chaînes) sur les champs d'un composite. Seule une recherche en égalité est possible.
Les mêmes règles peuvent être appliquées lors de la recherche de correspondances par expressions rationelles (regular expressions).
Exemple en Perl :
grep ( /\[cleX=valeurX\].*\[cleY=valeurY\].*\[cleZ=valeurZ\]/i, @attributComposite )
Les attributs SUPANN suivants sont basés sur le format composite: