XIMF XML tags/fr

De Trustedbird Client Wiki
Révision de 23 février 2011 à 18:05 par Cailleux (discussion | contributions) (Element ximf:compatibility)

Introduction

Ce document propose un modèle de description, via eXtensible Markup Language (XML), d’entêtes de messages électroniques respectant la norme XIMF. Ce document a deux objectifs :

  1. Décrire les éléments et attributs de représentation XML pour construire des entêtes de messages électroniques de format XIMF.
  2. Fournir un modèle de représentation XIMF/XML.

Rappel :

  • Un "élément" fait référence à tous les caractères situés entre une balise de départ et un balise de fin, e.g.,
<exemple> texte et/ou éléments fils </exemple>
  • Un "attribut" est une composante d’un élément. Il est positionné dans la balise de départ, e.g.,
<exemple nom='value'>

Tous les éléments décrits dans cette documentation paragraphe sont validés dans l’espace de nom "ximf".

 xmlns:ximf="http://eads.org/ximf/" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://eads.org/ximf/ximf.xsd"

Description détaillée des balises XML

Voici, par ordre d'apparition et en fonction des fichiers, les balises génériques associées aux différents fichiers XML.

Fichier ximfmail-profile

TODO :
  • Combien d'éléments ihm sont autorisés dans un élément instance ?
  • La documentation des fichiers ximfmail-profile.xml n'est pas disponible. Est-il possible d'avoir accès au fichier ximf_profile.xsd mentionné dans les ximfmail-profile.xml ?

Un fichier xpi peut contenir plusieurs instances XIMF, celles-ci sont alors regroupées dans une même catégorie. Le fichier ximfmail-profile contient des informations sur toutes les instances contenues dans le xpi, notamment leur nom, leur chemin d'accès, ainsi que les noms des fichiers associés à chaque instance.

Element instance

L’élément "instance" identifie l’ensemble des entêtes à décrire selon la norme XIMF. C’est le conteneur principal d’une instance XIMF/XML. Cinq attributs précisent la balise "instance" : "ximfVersion", "version", "author", "creation", "name", e.g.,

<ximf:instance name="myInstance" version="1.0" ximfVersion="2.0" >
  • Détails sur les attributs de l'élément "instance" :
    • L’attribut "name" définit le nom de l’instance décrite. Cet attribut est obligatoire.
    • L’attribut "ximfVersion" définit le numéro de version des entêtes XIMF utilisés pour cette représentation. Cet attribut est obligatoire.
    • L’attribut "version" définit le numéro de version de l’instance décrite. Cet attribut est obligatoire.
    • L’attribut "author" renseigne sur le nom de l’auteur de cette instance.
    • L’attribut "creationDate" précise la date de création de cette instance.

L’élément "instance" peut contenir un ou plusieurs éléments "schema", un ou plusieurs éléments "rule", un élément ihm et un élément "dictionary".

Element dictionary

L'élément dictionary contient le chemin vers le fichier spécifiant les données d'internationalisation (Cf. Fichier dictionary).

Element schema

L'élément shema contient le chemin vers le fichier spécifiant les entêtes XIMF (Cf. Fichier headers).

Element ihm

L'élément ihm contient le chemin vers le fichier spécifiant la disposition de l'interface des formulaires XIMF (Cf. Fichier ihm).

Element rule

L'élément rule contient le chemin vers le fichier spécifiant les règles associées aux valeurs des champs XIMF (Cf. Fichier rules).


Fichier dictionnary

Le fichier dictionnary permet de mettre en œuvre l’internationalisation d’une instance XIMF. Il défini des dictionnaires qui servent à traduire les éléments de l'instance XIMF. On y retrouve un élément "instance" rappelant l'instance XIMF à laquelle il est rattaché et qui contient un élément "ximf:dictionnary".

Element ximf:dictionary

TODO : Quel est l'intérêt de renseigner un attribut "id" à l'élément "dictionary" (étant donné qu'un seul élément "dictionary n'est autorisé dans l'élément "instance") ?

L’élément "dictionary" contient toutes les informations devant être interprétées selon le pays d’utilisation. L’élément "dictionary" contient un ou plusieurs mêmes éléments "locale", e.g.,

<ximf:dictionary>
  <ximf:locale lang="fr-FR" />
  <ximf:locale lang="en-US" />
</ximf:dictionary>

Element ximf:locale

L’élément "locale" contient toutes les informations pour un pays et/ou langue désignée. L’élément "locale" contient un ou plusieurs mêmes éléments "ilk", e.g.,

<ximf:locale lang="fr-FR" >
  <ximf:ilk entity="a"/>	
  <ximf:ilk entity="b"/>
</ximf:locale> 
  • Détails sur les attributs de la balise "locale" :
    • L’attribut "lang" définit le code pays de ce conteneur. Il devrai être construit selon le format défini par la RFC1766 (fr, en, ja, es, …).

Element ximf:ilk

L’élément "ilk" contient une unique information correspondant à une donnée traduite selon le code pays de l’élément père. Cette information est au format chaîne de caractère. Un attribut obligatoire précise la balise "ilk".

<ximf:ilk entity="ilk-lang-ihm">langue</ximf:ilk>
  • Détails sur les attributs de la balise "ilk" :
    • L’attribut "entity" définit la référence d’entrée pour récupérer le contenu de l’élément selon le code pays souhaité.


Finalement, le fichier "dictionary" pourra contenir :

<ximf:instance name="Whirlpool">
  <ximf:dictionary>
    <ximf:locale lang="fr-FR" >
      <ximf:ilk entity="ilk-lang-ihm">Français</ximf:ilk>
      <ximf:ilk entity="ilk-exemple-general">Général</ximf:ilk>
    </ximf:locale>
    <ximf:locale lang="en-US" >
      <ximf:ilk entity="ilk-lang-ihm">English (US)</ximf:ilk>
      <ximf:ilk entity="ilk-exemple-general">General</ximf:ilk>
     </ximf:locale> 	
  </ximf:dictionary>
</ximf:instance>


Fichier ihm

TODO : La documentation originale ne décrit pas le fichier ihm, les informations ci-dessous ont seulement été présumées. Merci de les vérifier/compléter.

Le fichier ihm spécifie l'agencement de l'interface des formulaires XIMF. On y retrouve un élément "instance" rappelant l'instance XIMF à laquelle il est rattaché et qui contient un élément "ximf:ihm".

Element ximf:ihm

L'élément "ihm" contient un ou plusieurs éléments "panel" et un élément "treeRcv".

Element ximf:panel

Un élément ximf:panel correspond à un onglet du formulaire XIMF construit. Deux attributs précisent la balise "panel" : "id" et "ilk", eg.

<ximf:panel id="pane_security" ilk="ilk-priority-panel" />
  • Détails sur les attributs de l'élément "panel" :
    • L’attribut "id" définit le nom de l'onglet, il doit être unique pour chaque élément "ximf:panel" et est formaté selon la syntaxe "pane-xxx". Cet attribut est obligatoire.
    • L’attribut "ilk" définit une référence de label de présentation associé au champ XIMF.

L'élément "ximf:panel" contient au moins un éléments "ximf:groupbox".

Element ximf:groupbox

Un élément groupbox correspond à une sous catégorie d'un onglet du formulaire XIMF. La structure "groupbox" détaille l’ordre d’affichage des entêtes dans un message. Deux attributs précisent la balise "ximf:groupbox" : "id" et "ilk", eg.

<ximf:groupbox id="group-classification" ilk="ilk-secu-box" />
  • Détails sur les attributs de l'élément "groupbox" :
    • L’attribut "id" définit le nom de l'onglet, il doit être unique pour chaque élément "ximf:panel" et est formaté selon la syntaxe "pane-xxx". Cet attribut est obligatoire.
    • L’attribut "ilk" définit une référence de label de présentation associé au champ XIMF.

L'élément "groupbox" contient au moins un éléments "ximf:headerRef".

Element ximf:treeRcv

L'élément "treeRcv" permet de spécifier quelles sont les colonnes susceptibles d'être ajoutées dans le panneau principal du client de messagerie qui contient la liste des messages d’un dossier.

L'élément "treeRcv" peut contenir des éléments "headerRef".

Element ximf:headerRef

L'élément headerRef spécifie les champs associés à chaque sous-groupe d'onglet de formulaire ou les champs qu'il est possible d'afficher dans la liste des messages. Aucun attribut ne vient compléter la balise "headerRef", eg.

<ximf:headerRef>header-classification</ximf:headerRef>


Finalement, le fichier "ihm" pourra contenir :

 <ximf:instance name="intracedCD">
   <ximf:ihm>
     <ximf:panel id="pane_security" ilk="ilk-priority-panel">
       <ximf:groupbox id="group-classification" ilk="ilk-secu-box">
         <ximf:headerRef>header-correspondance-type</ximf:headerRef>
         <ximf:headerRef>header-classification</ximf:headerRef>			
       </ximf:groupbox>
     </ximf:panel>
     <ximf:treeRcv>
       <ximf:headerRef>header-classification</ximf:headerRef>
     </ximf:treeRcv>
   </ximf:ihm>
 </ximf:instance>


Fichier headers

Le fichier headers spécifie les types des champs de l'interface des formulaires XIMF. On y retrouve un élément "instance" rappelant l'instance XIMF à laquelle il est rattaché et qui contient des éléments "header".

Element ximf:header

Chaque élément "header" décrit un entête de message de format XIMF. Huit attributs précisent la balise "header" : "headerName", "id", "technicalHeaderName", "type", "technicalType", "isMandatory", "ilk", "description", e.g.,

Comment est effectuée la vérification de l'attribut isMandatory et quelles sont les conditions de fonctionnement de celui-ci ? Est-il possible, par exemple, de spécifier l'attribut isMandatory=true d'un élément header si le contenu de celui-ci est un élément « set » qui dispose des attributs minItem et maxItem ?Actuellement, lorsque l'on crée un élément set avec les attributs minItem et maxItem, le champ du formulaire associé ne peux pas être validé : e.g.,

<ximf:set id="value-amoco-classification" minItem="1" maxItem="64" separator=";" technicalSeparator=".">

Est-ce un bug ?

<ximf:header id="header-primary-precedence" 
  headerName="X-XIMF-Primary-Precedence" 
  ilk="ilk-primary-precedence" 
  isMandatory="true" 
  description="entête d’urgence" 
  type="string" />
  • Détails sur les attributs de l'élément "header" :
    • L’attribut "headerName" définit le nom du champ XIMF. Cet attribut est obligatoire.
    • L’attribut "id" définit un identifiant de champ, il doit être unique pour chaque élément "header" et est formaté selon la syntaxe "header-xxx". Cet attribut est obligatoire.
    • L’attribut "isMandatory" précise si ce champ doit être obligatoirement présent dans le message intégrant les entêtes selon cette description.
    • L’attribut "ilk" définit une référence de label de présentation associé au champ XIMF.
    • L’attribut "type" précise le format des données associées à cet élément. Ce format peut être une date, une chaîne, une adresse mail, un O.I.D.
    • L’attribut "technicalHeaderName" permet de compléter l’entête décrit par un autre entête.
    • L’attribut "technicalType" précise le format des données associées à l’élément technicalHeaderName.
    • L’attribut "description" permet d’ajouter une information sur cet élément.

L’élément "header" contient obligatoirement un élément "set", "multiset", "string", ou "compstring", e.g.,

<ximf:header id="header-reply-by" 
  headerName="X-XIMF-Reply-By" 
  ilk="ilk-reply-by" 
  isMandatory="false" >
    <ximf:string id="value-reply-by" editable="true" />
</ximf:header>

Quelles sont les contraintes associées à l'attribut type d'un élément header ?


Element ximf:string

L’élément "string" précise le contenu d’une ressource de type chaîne de caractères imprimables (a-z, A-Z, 1-9,…) Quinze attributs complètent l’élément "string" : "id", "ref", "ilk", "aclLevel", "index", "description", "editable", "content", "technicalContent","maxItem", "minItem", "maxLength", "minLength", "separator", "technicalSeparator", e.g.,

<ximf:string ilk="ilk-france" content="FRA" />
  • Détails sur les attributs de l'élément "string" :
    • L’attribut "id" définit un identifiant d’élément, il doit être unique pour chaque élément "string".
    • L’attribut "ref" définit un identifiant de référence qui contient les valeurs à utiliser pour cet élément.
    • L’attribut "ilk" définit une référence de label de présentation internationalisé.
    • L’attribut "aclLevel" définit la valeur seuil d’accès à la donnée selon une règle de droit d’accès (cf. élément "role").
    • L’attribut "index" permet de définir un ordre de présentation par rapport à aux autres valeurs définies dans le même conteneur.
    • L’attribut " description " permet d’associer un commentaire sur cette donnée.
    • L’attribut "editable" définit une valeur de saisie (champ libre). Cet attribut est de type booléen.
    • L’attribut "content" représente la valeur effective de la donnée. C’est cette donnée qui sera associée au champ XIMF créé.
    • L’attribut "technicalContent" représente la valeur effective de la donnée technique. C’est cette donnée qui sera associée au champ technique XIMF créé (cf. attribut technicalHeaderName de l’élément "header".
    • L’attribut "separator" définit le caractère de séparation entre deux valeurs (utile si l’attribute editable est positionné).
    • L’attribut "technicalseparator" définit le caractère de séparation entre deux valeurs (utile si l’attribute editable est positionné).
    • L’attribut "maxLength" définit le nombre maximal de caractères de la chaîne définie ou construite.
    • L’attribut "minLength" définit le nombre minimal de caractères de la chaîne définie ou construite.
    • L’attribut "maxItem" définit le nombre maximal de données associées pouvant être concaténées.
    • L’attribut "minItem" définit le nombre minimal de données associées pouvant être concaténées.

L’élément "string" peut contenir plusieurs éléments "linkedValue".

<ximf:string ilk="ilk-non-protege" content="NON PROTEGE" technicalContent="1" > <ximf:linkedValue ref="value-non-protege-france " /> </ximf:string>

Element ximf:compstring

L'attribut de l'élément « compstring » nommé « contentFactorise » devrait s'appeler « contentFactorize ».

L’élément "compstring" décrit un conteneur de concaténation des éléments fils. Il permet notamment de créer des valeurs d’entêtes composées. Dix-sept attributs complètent l’élément "compstring" : "id", "ref", "ilk", "aclLevel", "index", "description", "maxLength", "minLength", "maxItem", "minItem", "separator", "technicalSeparator", "content", "technicalContent", "contentPositionEnd", "contentFactorise", "technicalPositionEnd", e.g.,

<ximf:compstring 
  ilk="ilk-special" 
  content="SPECIAL" 
  technicalContent="1.3.4" 
  separator=" " 
  technicalSeparator=".">
  • Détails sur les attributs de l'élément "compstring" :
    • L’attribut "id" définit un identifiant d’élément, il doit être unique pour chaque élément "compstring".
    • L’attribut "ref" définit un identifiant de référence qui contient les valeurs à utiliser pour cet élément.
    • L’attribut "ilk" définit une référence de label de présentation internationalisé.
    • L’attribut "aclLevel" définit la valeur seuil d’accès à la donnée selon une règle de droit d’accès (cf. élément "role").
    • L’attribut "index" permet de définir un ordre de présentation par rapport à aux autres valeurs définies dans le même conteneur.
    • L’attribut " description " permet d’associer un commentaire sur cette donnée.
    • L’attribut "content" représente la valeur effective de la donnée. C’est cette donnée qui sera associée au champ XIMF créé.
    • L’attribut "technicalContent" représente la valeur effective de la donnée technique. C’est cette donnée qui sera associée au champ technique XIMF créé (cf. attribut technicalHeaderName de l’élément "header".
    • L’attribut "separator" définit le caractère de séparation entre deux valeurs.
    • L’attribut "technicalseparator" définit le caractère de séparation entre deux valeurs.
    • L’attribut "maxLength" définit le nombre maximal de caractères de la chaîne définie ou construite.
    • L’attribut "minLength" définit le nombre minimal de caractères de la chaîne définie ou construite.
    • L’attribut "maxItem" définit le nombre maximal de données associées pouvant être concaténées.
    • L’attribut "minItem" définit le nombre minimal de données associées pouvant être concaténées.
    • L’attribut "contentPositionEnd" impose de positionner le contenu de l’élément "compstring" après les valeurs des éléments fils : valuefils1,valuefils2 : valuecompstring.
    • L’attribut "technicalPositionEnd" impose de positionner le contenu de l’élément "compstring" après les valeurs des éléments fils.
    • L’attribut "contentFactorise" impose d’utiliser le contenu de l’élément "compstring" comme facteur des éléments fils : valuecompstring(valuefils1,valuefils2).

L’élément "compstring" peut contenir un élément "string" ou "set" ou "multiset" ou plusieurs éléments "compstring".

<ximf:compstring 
  ilk="ilk-special" 
  content="SPECIAL" 
  technicalContent="1.3.4" 
  separator=" " 
  technicalSeparator=".">
    <ximf:set id="ilk-special-op " maxItem="64">
      <ximf:string ilk="ilk-special-op1" content="OP1" technicalContent="1" />
      <ximf:string ilk="ilk-special-op2" content="OP2" technicalContent="2" />
      <ximf:string ilk="ilk-special-op3" content="OP3" technicalContent="3" />
    </ximf:set>		
</ximf:compstring>

Element ximf:set

L’élément "set" décrit un conteneur de ressources de même type. Cet élément autorise la sélection de plusieurs ressources mais chaque ressource est sélectionnée une seule fois. Douze attributs précisent la description de la balise "set" : "id", "ref", "ilk", "aclLevel", "index", "description", "maxLength", "minLength", "maxItem", "minItem", "separator", "technicalSeparator", e.g.,

<ximf:set id="value-categories" ref="value-mentions" maxItem="64" separator=";" />
  • Détails sur les attributs de l'élément "set" :
    • L’attribut "id" définit un identifiant d’élément, il doit être unique pour chaque élément "ximf:set".
    • L’attribut "ref" définit un identifiant de référence qui contient les valeurs à utiliser pour cet élément.
    • L’attribut "ilk" définit une référence de label de présentation internationalisé.
    • L’attribut "aclLevel" définit la valeur seuil d’accès à la donnée selon une règle de droit d’accès (Cf. élément rôle).
    • L’attribut "index" permet de définir un ordre de présentation par rapport à aux autres valeurs définies dans le même conteneur.
    • L’attribut "description" permet d’associer un commentaire sur cette donnée.
    • L’attribut "maxLength" définit le nombre maximal de caractères de la chaîne définie ou construite.
    • L’attribut "minLength" définit le nombre minimal de caractères de la chaîne définie ou construite.
    • L’attribut "maxItem" définit le nombre maximal de données associées pouvant être concaténées.
    • L’attribut "minItem" définit le nombre minimal de données associées pouvant être concaténées.
    • L’attribut "separator" définit le caractère de séparation entre deux valeurs (utile si l’attribute editable est positionné).
    • L’attribut "technicalseparator" définit le caractère de séparation entre deux valeurs

L’élément "set" peut contenir un ou plusieurs éléments "string" ou un ou plusieurs éléments "compstring".

<ximf:set id="value-categories" minItem="1" maxItem="64" separator=";">
  <ximf:string ilk="ilk-releasable-to" content="RELEASABLE TO " />
  <ximf:string ilk="ilk-eyes-only" content=" EYES ONLY"/>
  <ximf:string ilk="ilk-use-only" content=" USE ONLY"/>
</ximf:set>
* Y a-t-il une définition des fichiers associés aux instances XIMF (e.g, le fichier attribution-list.xml utilisé dans l'instance Caterpillar) ?
  • Comment le parseur d'instance ximf sait qu'un élément est une "attribution-list" ?

Element ximf:multiset

L’élément "multiset" décrit un conteneur de ressources de même type. Cet élément autorise la sélection de plusieurs ressources et chaque ressource peut être sélectionnée plusieurs fois. Douze attributs précisent la description de la balise "multiset" : "id", "ref", "ilk", "aclLevel", "index", "description", "maxLength", "minLength", "maxItem", "minItem", "separator", "technicalSeparator", e.g.,

<ximf:multiset 
  id="value-restricted" 
  ilk=" value-restricted-otan" 
  maxItem="64" 
  separator=";" />
  • Détails sur les attributs de l'élément "multiset" :
    • L’attribut "id" définit un identifiant d’élément, il doit être unique pour chaque élément "multiset".
    • L’attribut "ref" définit un identifiant de référence qui contient les valeurs à utiliser pour cet élément.
    • L’attribut "ilk" définit une référence de label de présentation internationalisé.
    • L’attribut "aclLevel" définit la valeur seuil d’accès à la donnée selon une règle de droit d’accès (Cf. élément rôle).
    • L’attribut "index" permet de définir un ordre de présentation par rapport à aux autres valeurs définies dans le même conteneur.
    • L’attribut "description" permet d’associer un commentaire sur cette donnée.
    • L’attribut "maxLength" définit le nombre maximal de caractères de la chaîne définie ou construite.
    • L’attribut "minLength" définit le nombre minimal de caractères de la chaîne définie ou construite.
    • L’attribut "maxItem" définit le nombre maximal de données associées pouvant être concaténées.
    • L’attribut "minItem" définit le nombre minimal de données associées pouvant être concaténées.
    • L’attribut "separator" définit le caractère de séparation entre deux valeurs (utile si l’attribute editable est positionné).
    • L’attribut "technicalseparator" définit le caractère de séparation entre deux valeurs

L’élément "multiset" peut contenir un ou plusieurs éléments "string" ou un ou plusieurs éléments "compstring".

<ximf:multiset id="value-restricted-otan-categories" minItem="1" maxItem="64" separator=";" >
  <ximf:string ilk="ilk-releasable-to" content="RELEASABLE TO "/>
  <ximf:string ilk="ilk-eyes-only" content=" EYES ONLY"/>
  <ximf:string ilk="ilk-use-only" content=" USE ONLY"/>
</ximf:multiset>

Comment sont gérées les règles associées aux champs multivaleurs (disposant par exemple des attributs minItem/maxItem ou les champs multiset) ?

Element ximf:linkedValue

TODO : L'élément linkedValue indique quelle ressource utiliser lors de la sélection d'un élément particulier mais il n'indique pas où la ressource devra être utilisée.
  • Est-ce que cela correspond toujours au header suivant ?
  • Pourquoi avoir fait ce choix au lieu d'ajouter un attribut supplémentaire ?

L’élément "linkedValue" définit une référence sur une ressource de type conteneur ("set", "multiset") ou "string". Cette ressource devrait être utilisée si la ressource contenant "linkedValue" (noeud parent) est sélectionnée. Un attribut précise la balise "linkvalue" : "ref", e.g.,

<ximf:linkedValue ref="value-restricted-otan-classification-id" />
  • Détails sur les attributs de l'élément "linkedValue" :
    • L’attribut "ref" précise la valeur de l’attribut "id" de la ressource cible. Cet attribut est obligatoire.


Fichier rules

Le fichier rules définit les règles de contrôles d’entêtes XIMF. On y retrouve un élément "instance" rappelant l'instance XIMF à laquelle il est rattaché et qui peut contenir des éléments "ximf:rule".

Element ximf:rule

TODO : Mettre à jour la documentation :

  • Les éléments autorisés dans un élément « rule » ne sont plus à jour. La présente documentation spécifie 12 éléments : AliasHeader, AliasValue, Compatibility, Association, SecureHeaders, SecurityLabel, Constraint, Assignment, Processing, Accessibility, Role et Custom. Le schéma XML fourni avec le mail en spécifie 5 : Constraint, Processing, Compatibility, Policy et Custom et place les autres en tant qu'extentions des 5 éléments cités précédemment.
  • Les éléments SecureHeaders et SecurityLabel associés à l'élément « rule » dans la version ci-dessus ne figurent plus dans la nouvelle version. On les retrouve dans les fichiers rules-*.xml mais les éléments sont commentés. En revanche, ils sont bien présents dans l'instance INTRACED CD : s'agit-il d'une fonctionnalité non-documentée ou plus documentée ?
  • L'élément ximf:classificationPictures n'est pas documenté. De plus, il serait bon d'avoir des précisions sur la raison qui a motivé l'ajout de cet élément dans les fichiers de règles (alors qu'il semblerait être plus adapté au fichier headers-*.xml).

L’élément "rule" est le conteneur principal de description d’un comportement particulier à appliquer sur un ensemble d’entêtes XIMF. Trois attributs précisent la balise "rule" : "id", "agent", "description", e.g.,

<ximf:rule id="compatibility-rule" description="Règle sur la compatibilité X-SMTP / XIMF" >
  • Détails sur les attributs de l'élément "rule" :
    • L’attribut "id" définit un identifiant d’élément, il doit être unique pour chaque élément "rule". Cet attribut est obligatoire.
    • L’attribut "agent" indique l’équipement cible devant analyser et appliquer le contenu de cet élément.
    • L’attribut "description" autorise l’auteur d’ajouter un commentaire sur cet élément.

L’élément "rule" contient un ou plusieurs mêmes éléments de spécialisation de la règle "contraint", "assignement", "processing", "compatibility", "accessibility", "custom",…, e.g.,

<ximf:rule id="precedence-rule" agent="mua" description="Règle sur les priorités">
  <ximf:constraint 
    left="header-primary-precedence" 
    operator="equalOrGreaterThan" 
    right="header-copy-precedence" />
</ximf:rule>

Element ximf:aliasHeader

L’élément "aliasHeader" permet de définir le nom de l’entête sur lequel la règle précisée est appliquée Deux attributs précisent la balise "aliasHeader" : "headerName" et "headerRef", e.g.,

<ximf:aliasHeader headerName ="X-P772-Version" headerRef="X-XIMF-VERSION" />	
  • Détails sur les attributs de l'élément "aliasHeader" :
  • L’attribut "headerName" définit le nom XIMF de l’entête modifié par la règle. Cet attribut est obligatoire.
  • L’attribut "headerRef" définit le nom d’un entête XIMF de référence qui est le point d’entrée de l’application de la règle sur l’entête définit par "headerName". Cela permet de lier deux entêtes de messages où l’utilisation de l’un des entêtes influe sur le comportement de l’autre.

L’élément "aliasHeader" peut contenir des éléments "aliasValue",e.g ,

<ximf:aliasHeader headerName="X-P772-Version" />
  <ximf:aliasValue vame="1.0"/>		
<ximf:aliasHeader>

Element ximf:aliasValue

L’élément "aliasValue" contient une valeur à associer à l’entête XIMF contrôlé par la règle. Il est utile lorsque deux entêtes sont liées (utilisation de l’attribut headerRef dans l’élément aliasHeader) et que les valeurs de l’entêtes de référence permettent de préciser celles de l’entête contrôlé. Deux attributs précisent la balise "aliasValue" : "valueName", "valueRef", e.g.,

<ximf:aliasValue valueName="2" valueRef ="flash" />			
  • Détails sur les attributs de l'élément "aliasValue" :
    • L’attribut "valueName" définit la valeur de l’entête à créer. Cet attribut est obligatoire.
    • L’attribut "valueRef" définit la valeur de l’entête XIMF de référence pour utiliser valueName.

TODO : L'attribut valueRef est-il obligatoire ?

Element ximf:compatibility

L’élément "compatibility" est utilisé pour associer à un entête respectant la norme XIMF un entête respectant une autre norme que XIMF (XSMTP par exemple). Deux attributs précisent la balise "compatibility" : "targetName", "targetVersion", e.g.,

<ximf:compatibility targetName="X-SMTP" targetVersion="1.1">
  <ximf:aliasValue headerName="X-P772-Version" content="1.1" />		
  <ximf:aliasValue 
    headerName="X-P772-Primary-Precedence" 
    headerRef="header-primary-precedence" 
    dataRef="data-priority-xsmtp"/>
</ximf:compatibility>
  • Détails sur les attributs de l'élément "compatibility" :
    • L’attribut "targetName" définit la norme de l’entête à associer à l’entête XIMF. Cet attribut est obligatoire.
    • L’attribut "targetVersion" définit le numéro de version de la norme de l’entête à associer à l’entête XIMF. Cet attribut est obligatoire.

L’élément "compatibility" contient au moins un élément "aliasHeader".

Pour illustrer cette règle : Le format XSMTP est déjà supporté par certains équipements. Afin de rendre ceux-ci inter opérables avec le nouveau format XIMF, cette règle permet d’associer un entête XSMTP contenant les mêmes informations qu’un entête XIMF.

L’élément Association : dépendance entre entêtes L’élément "association" définie les valeurs autorisées pour un entête XIMF en fonction d’une valeur définie pour un autre entête XIMF.

<ximf:association>
    <ximf:aliasHeader 
      headerName="X-XIMF-Primary-Precedence" 
      headerRef="X-XIMF-Correspondence-Type">
    <ximf:aliasValue valueName="routine" valueRef="private" />
    <ximf:aliasValue valueName="routine,priority" valueRef="professional" />
    <ximf:aliasValue valueName="routine,priority,immediate,flash" valueRef="operational" />
    <ximf:aliasValue valueName="routine,priority,immediate" valueRef="official" />
  </ximf:aliasHeader>
</ximf:association>

Element ximf:secureHeaders

Les éléments SecureHeaders et SecurityLabel associés à l'élément « rule » dans la version ci-dessus ne figurent plus dans la nouvelle version. On les retrouve dans les fichiers rules-*.xml mais les éléments sont commentés. En revanche, ils sont bien présents dans une autre instance : s'agit-il d'une fonctionnalité non-documentée ou plus documentée ? L’élément "secureHeaders" définie la liste des entêtes à intégrer dans la signature d’un message. Cette règle s’applique sur les équipements proposant un algorithme de signature des messages.

Un élément "secureHeaders" contient un ou plusieurs éléments "aliasHeaders" où chaque élément décrit un entête à intégrer dans la signature et complété d’un attribut "status".

<ximf:secureHeaders targetName="SecureHeaders">			
  <ximf:aliasHeader headerName="X-XIMF-Primary-Precedence"  status="0" />
  <ximf:aliasHeader headerName="X-XIMF-Copy-Precedence" status="0" />
</ximf:secureHeaders>

Element ximf:securityLabel

L’élément "securityLabel" définie la liste des entêtes à intégrer dans la signature d’un message. Cette règle s’applique sur les équipements proposant un algorithme de signature des messages selon la norme RFC.

Un élément "securityLabel" contient un ou plusieurs éléments "aliasHeaders" où chaque élément décrit un entête à intégrer dans la signature et complété d’un attribut "status".

<ximf:securityLabel targetName="SecurityLabel" id="intraced">
  <ximf:aliasHeader 
    headerName="SecurityPolicyIdentifier" 
    headerRef="X-XIMF-Security-Policy-Identifier" />			
  <ximf:aliasHeader 
    headerName="SecurityClassification" 
    headerRef="X-XIMF-Security-Classification-Identifier" />							
  <ximf:aliasHeader 
    headerName="ESSPrivacyMark" 
    headerRef="X-XIMF-Privacy-Mark" />
  <ximf:aliasHeader 
    headerName="SecurityCategory" 
    headerRef="X-XIMF-Security-Categories-Identifier" 
    type="2" />
</ximf:securityLabel>	

Element ximf:constraint 

L’élément "constraint" est utilisé pour définir une règle de construction de deux entêtes partageant des "datas" identiques. Trois attributs précisent la balise "constraint" : "left", "right", "operator", e.g.,

<ximf:constraint 
  left="header-primary-precedence" 
  operator="equalOrGreaterThan" 
  right="header-copy-precedence" />
  • Détails sur les attributs de l'élément "constraint" :
    • L’attribut "left" désigne le premier élément "header" de comparaison. Cet attribut est obligatoire.
    • L’attribut "right" désigne le deuxième élément "header" de comparaison. Cet attribut est obligatoire.
    • L’attribut "operator" indique la règle de poids à appliquer sur la valeur des deux éléments "header", il peut être de type "greaterThan", "lowerThan", "equalOrGreaterThan", "equalOrLowerThan", "equal". Cet attribut est obligatoire.
  • Détails sur les valeurs possibles de l'attribut "type" :
    • Le type "greaterThan" signifie que la valeur de l’élément "left" doit être strictement supérieur à la valeur de l’élément "right".
    • Le type "lowerThan" signifie que la valeur de l’élément "left" doit être strictement inférieur à la valeur de l’élément "right".
    • Le type "equalOrGreaterThan" signifie que la valeur de l’élément "left" doit être supérieur ou égale à la valeur de l’élément "right".
    • Le type "equalOrLowerThan" signifie que la valeur de l’élément "left" doit être inférieur ou égale à la valeur de l’élément "right".
    • Le type "equal" signifie que la valeur de l’élément "left" et de l’élément "right" doivent être identiques.

Element ximf:assignment

L'élément assignment n'apparaît pas dans le shéma xml qui avait été envoyé.

L’élément "assignement" est utilisé pour affecter une valeur créée en fonction d’une règle de comparaison sur les valeurs de deux éléments "header". Quatre attributs précisent la balise "assignement" : "left", "right", "operator", "result", e.g.,

<ximf:assignment 
  left="header-primary-precedence"
  operator="equal" 
  right="data-routine-precedence" 
  result="86400" />
  • Détails sur les attributs de l'élément "assignment" :
    • L’attribut "left" désigne le premier élément "header" de comparaison. Cet attribut est obligatoire.
    • L’attribut "right" désigne le deuxième élément "header" de comparaison. Cet attribut est obligatoire.
    • L’attribut "operator" indique la règle de comparaison entre les valeurs des deux éléments "header", il peut être de type "greaterThan", "lowerThan", "equalOrGreaterThan", "equalOrLowerThan", "equal". Cet attribut est obligatoire.
    • L’attribut "result" représente la valeur à utiliser si la règle de comparaison entre les deux éléments est satisfaite. Cet attribut est obligatoire.

Element ximf:processing

L’élément "processing" regroupe des règles de traitement à effectuer sur des entêtes formatés. L’attribut "type" précise le type de traitement à effectuer sur ces valeurs. Cet attribut est obligatoire, il est de type : "sign-header-value", "encrypt-header-value", "capitalize-header-value", e.g.,

<ximf:processing type="sign-header-value">
  <ximf:refHeader>header-primary-precedence</ximf:refheader>
  <ximf:refHeader>header-copy-precedence</ximf:refheader>
  <ximf:refHeader>header-echange-type</ximf:refheader>
</ximf:processing>
  • Détails sur les valeurs possibles de l'attribut "type" :
    • Le type "sign-header-value" définit un traitement de signature des entêtes définis dans la balise.
    • Le type "encrypt-header-value" définit un traitement de chiffrement des entêtes définis dans la balise.
    • Le type "capitalize-header-value" définit un traitement de capitalisation des entêtes définis dans la balise.

L’élément "processing" contient au moins un élément "refHeader".

L'élément refHeader n'est pas documenté, s'agit-il en fait de l'élément headerRef ?

Element ximf:accessibility

L'élément assignment n'apparaît pas dans le shéma xml qui avait été envoyé.

L’élément "accessibility" définit un ensemble de règles de droit d’accès aux éléments d’une instance pour une cible déterminée (utilisateur, routeur…). Cet élément contient un ou plusieurs éléments "role".

<ximf:accessibility>
  <ximf:role id="role-flash-allowed" aclLevel="100" />
  <ximf:role id="role-flash-prohibited" aclLevel="50" />
</ximf:accessibility>

Element ximf:role

L’élément "role" positionne une valeur d’accès à pour une entité définit. Deux attributs complètent l’élément "role" : "id", "aclLevel", e.g.,

<ximf:role id="role-flash-allowed" aclLevel="100" />
  • Détails sur les attributs de l'élément "role" :
    • L’attribut "id" précise l’entité accessible en fonction d’une valeur déterminée.
    • L’attribut "aclLevel" précise la valeur seuil d’accès à l’entité.

Element ximf:custom

L’élément "custom" permet à l’auteur de créer des nouvelles règles personnalisées. Trois attributs précisent la balise "custom" : "id", "provider", "description", e.g.,

<ximf:custom 
  id="custom-display" 
  provider="EADS" 
  description="Affichage de la composition du message" >
    <node1><node2><node3></node3></node2></node1>
</ximf:custom>
  • Détails sur les attributs de l'élément "custom" :
    • L’attribut "id" définit un identifiant d’élément, il doit être unique pour chaque élément "custom" et formaté selon la syntaxe "custom-xxx". Cet attribut est obligatoire.
    • L’attribut "provider" identifie l’auteur de la règle. Cet attribut est obligatoire.
    • L’attribut "description" permet d’ajouter un commentaire sur cet élément.

L’élément "custom" peut contenir tous les éléments possibles en respectant les standards XML.