Élément TemplateDocument, d'un fichier de définition de modèle

Pour chaque message XML entrant, il doit y avoir au moins un document de modèle défini dans le message. Il est défini dans l'élément TemplateDocument.

L'élément TemplateDocument comporte quatre sous-éléments :

DocumentType (avec un attribut de version facultatif)
Cette partie spécifie le nom du document XML ou le nom de l'élément racine et l'attribut "version" de l'élément racine s'il existe. Voici un exemple de l'élément DocumentType :
<DocumentType version='1.0'>Reset_Password</DocumentType>
StartElement
Cette partie spécifie l'élément à partir duquel le mappeur de message XML démarre le mappage de balises. Cela doit correspondre à un élément du DTD pour le message. Le mappage de balise génère les paires nom-valeur qui sont utilisées comme paramètres de commande. Voici un exemple de l'utilisation de StartElement :
<StartElement>PasswordInfo</StartElement>
Dans cet exemple, il doit y avoir un élément nommé PasswordInfo défini dans le fichier DTD pour ce message. Par exemple, le fichier DTD doit contenir une ligne telle que la suivante qui définit un élément PasswordInfo :
<!ELEMENT PasswordInfo (Password, ConfirmPassword)>
TemplateTagName
Cette partie spécifie le mappage de balises à utiliser pour le message. Le mappage de balises est défini ailleurs dans le fichier de définition de modèle sous l'élément TemplateTag. Cela signifie que la valeur de l'élément TemplateTagName doit correspondre à l'attribut de nom d'un élément TemplateTag qui apparaît quelque part dans le fichier de définition de modèle. Pour plus de détails, reportez-vous à la section sur l'élément TemplateTag. L'exemple suivant illustre l'utilisation de l'élément TemplateTagName :
<TemplateTagName>PasswordReset10Map</TemplateTagName>
Dans cet exemple, l'élément TemplateTag suivant doit exister ailleurs dans le fichier de définition de modèle :
<TemplateTag name='PasswordReset10Map'>
 ...
 </TemplateTag>
Les éléments entre les balises de début et de fin dépendent du mappage du message.
CommandMapping
Cet élément détermine les commandes appelées par le message. L'élément contient un sous-élément appelé Command. L'élément Command est utilisé pour indiquer la commande de contrôleur HCL Commerce qui s'exécute lorsque le message est mappé avec succès. Il contient un attribut obligatoire appelé CommandName, qui est utilisé pour indiquer le nom de la commande. La valeur de cet attribut doit correspondre à une commande existante enregistrée dans les fichiers de configuration Struts. Par exemple, vous pouvez associer un message à la commande qui réinitialise un mot de passe à l'aide de la syntaxe suivante :

<CommandMapping>
     <Command CommandName='ResetPassword'/>
</CommandMapping>
Pour plus d'informations, voir la rubrique personnalisation de la configuration de l'application Web HCL Commerce basée sur Struts.

Vous pouvez également associer plusieurs commandes au même message. Pour ce faire, vous devez utiliser les attributs supplémentaires suivants de l'élément Command :

  • Attribut de condition : La syntaxe de la condition est la suivante ( [] représente un élément facultatif, * signifie qu'un élément peut être répété) :
    fieldName [="fieldValue "] [AND fieldName [="fieldValue "]]*
    nomZone
    fieldName="fieldValue "
    Une valeur du message XML est définie dans le champ de fieldName. Lorsque le message est mappé, si la valeur est la même que fieldValue, la condition est vraie.
    fieldName1="fieldValue1" ET fieldName1="fieldValue2"
    Les valeurs du message XML sont définies dans le champ fieldName1 et fieldName2 lorsque le message est analysé. Si les valeurs sont identiques à fieldValue1 et fieldValue2 respectivement, la condition est vraie.
Attribut TemplateTagName
Si vous spécifiez l'attribut TemplateTagName pour cet élément Command, chaque fois que la condition devient vraie, un nouveau modèle de balise avec le nom défini dans TemplateTagName sera utilisé pour le reste du message XML entrant.
L'élément Constant liste les constantes à mettre dans TypedProperty pour cette commande.
  • Zone : Nom de champ de la paire nom-valeur qui sera renseigné dans TypedProperty.
  • Fieldinfo : Voir la définition dans TemplateTag. La valeur doit être placée entre les balises Constant.
Voici un exemple simple de la façon dont vous pouvez utiliser les différents éléments Command pour mapper vers plusieurs commandes :
<CommandMapping>
   <Command CommandName='ResetPassword' Condition='Verb="Reset" AND  Noun="Password"'/>
   <Command CommandName='AdminResetPassword' Condition='Verb="Reset" AND Noun="AdminPassword"'/>
  </CommandMapping>

Dans cet exemple, il doit y avoir des éléments Noun et Verb définis dans le fichier DTD pour le message.