Le formalisme « RelaxNG »

Pour des raisons techniques, nous avons choisi d'utiliser la technologie RelaxNG plutôt que celle du W3C XML-Schema qui a été utilisée pour le SEDA. En effet, la technologie XML-Schema ne permet pas de définir plusieurs structures différentes de même nom à des emplacements équivalents dans les messages XML. Par exemple, il n'est pas possible d'exprimer le fait que le premier document d'un transfert est toujours d'un format (pdf) et que le deuxième est toujours d'un autre format (xml), car dans les deux cas la structure utilisée s'appelle <Document> et ne peut donc avoir qu'une seule définition. En utilisant les schémas RelaxNG, il est tout à fait possible d'exprimer de telles contraintes.

Les schémas de profil ne se substituent pas aux schémas du SEDA dans la mesure où ils ne font qu'ajouter des contraintes sans pour autant redéfinir les contraintes de base du SEDA. La validation d'un message de transfert par les schémas du SEDA doit donc toujours se faire avant ou après la validation avec le schéma d'un profil.

Les contraintes que l'on souhaiterait exprimer dans un profil ne peuvent pas toutes être exprimées à l'aide de schémas. En effet, il s'agit de langages déclaratifs et non procéduraux, ce qui empêche l'expression d'un certain nombre de contraintes (comme par exemple contraindre la date de fin d'être postérieure à la date de début).

De même, Agape ne permet pas d'exprimer la totalité des contraintes que peuvent utiliser les schémas RelaxNG. L'objectif d'Agape est essentiellement d'aider ceux qui ne connaissent pas suffisamment les technologies XML pour écrire directement des schémas. A l'inverse, ceux qui maîtrisent bien ces formalismes pourront écrire directement des schémas sans passer par l'outil ou reprendre des schémas créés par Agape pour les compléter en y ajoutant des contraintes plus précises ou plus complexes. A ce titre ils pourront également incorporer dans le code des instructions de type Schematron qui pourront être vérifiées dans les étapes de validation et qui, notamment, permettent d'exprimer des contraintes en termes procéduraux.

Références