L'expression des contraintes

Les questionnaires proposent dans un ordre fixé par les schémas du SEDA l'ensemble des éléments possibles pour le bloc considéré. Par défaut, les éléments obligatoires sont les seuls à être actifs, les autres n'étant activés que sur demande. De la même manière, dans l'éditeur d'attributs, les attributs d'un élément sont tous par défaut à l'état désactivés (si les schémas du SEDA le permettent).

Activation/inactivation

L'activation et l'inactivation d'un élément est le premier type de contrainte que l'on peut spécifier dans un profil. Si un élément est inactif, alors il sera interdit de l'utiliser dans les messages de transfert. Lorsqu'un élément est actif, c'est sa cardinalité qui déterminera sa présence dans les messages de transfert.

L'activation d'un attribut de la même manière rend cet attribut utilisable dans les messages de transfert. L'élément est alors facultatif.

Changement de cardinalité

Changer la cardinalité d'un élément est le deuxième type de contrainte que l'on peut spécifier dans un profil. L'interface d'Agape ne permettant que d'ajouter des contraintes au SEDA et jamais d'en enlever, les changements de cardinalités possibles sont les suivants:

Cardinalité de départ du SEDA Cardinalités cible dans le profil
[1-1] On ne peut rien modifier
[0-1] [1-1]
[1-n] [1-1] ou plusieurs [1-1]
[0-n] [0-1], [1-1], [1-n] ou plusieurs [1-1]

Quelle que soit la cardinalité d'un élément, l'ensemble des contraintes définies sur ses sous éléments devra s'appliquer à toutes les instances de celui-ci. Par exemple si l'élément « document » de l'archive est déclaré avec une cardinalité [1-n] et possède lui-même un élément « date de création » déclaré obligatoire, tous les documents de l'archive des messages de transfert devront avoir une date de création.

Dans le même registre, si un bloc est déclaré obligatoire, cela ne veut pas dire que les éléments qui le composent le sont également. Par exemple, le bloc « service producteur », qui est facultatif dans les schémas du SEDA contient par défaut de nombreux éléments eux aussi facultatifs ainsi qu'un élément obligatoire (l'identifiant). Ce bloc « service producteur » peut être rendu obligatoire dans un profil. Pour autant les éléments obligatoires qui le composent resteront obligatoires et les élément facultatifs resteront facultatifs sauf s'ils sont également modifiés. On peut ainsi désactiver tous les éléments contenus dans un bloc, alors même que le bloc en question est obligatoire. Une telle contrainte ne sera vérifiée dans les versements que si la balise correspondant au bloc est à la fois présente et vide.

Spécification d'une valeur fixe

Lorsqu'un élément est actif, un éditeur adapté est alors présent dans l'encadré de cet élément afin de pouvoir préciser éventuellement la valeur attendue de celui-ci. Si une valeur est saisie, celle-ci doit obligatoirement être acceptable de point de vue du SEDA et devient de facto la seule valeur autorisé pour cet élément. Par exemple, la langue de description peut être ainsi fixée à « fr » (français). Pour d'autres catégories d'informations, il ne sera pas toujours possible d'en déterminer à l'avance la valeur. Par exemple les champs date, par construction, sont la plupart du temps des champs dont la valeur n'est connue qu'au moment où l'export se réalise.

Les valeurs des attributs, sont saisies de la même manière que pour les éléments (avec des éditeurs spécialisés) mais dans une fenêtre distincte de celle des questionnaires. Lorsque la valeur d'un attribut est donnée, l'attribut devient alors obligatoire.