Elément TemplateDocument d'un fichier de définition de modèle
Chaque message XML entrant doit contenir au moins un document de modèle défini. Cette définition se trouve dans l'élément TemplateDocument. L'élément TemplateDocument contient quatre sous-éléments :
- DocumentType (avec un attribut de version facultatif) : cette partie spécifie le nom du document XML, c'est-à-dire le nom de l'élément racine, et l'attribut "version" de l'élément racine, s'il existe. Exemple d'élément DocumentType :
<DocumentType version='1.0'>Reset_Password</DocumentType>
- StartElement : cette partie spécifie l'élément à partir duquel l'associateur de message XML commence le mappage des marques. Il doit correspondre à un élément du DTD du message. Le mappage des marques génère les paires de valeurs de nom utilisées comme paramètres d'instruction. Exemple d'utilisation de StartElement :
<StartElement>PasswordInfo</StartElement>
Dans cet exemple, le fichier DTD de ce message doit contenir la définition d'un élément appelé PasswordInfo. Par exemple, le fichier DTD doit contenir une ligne définissant un élément PasswordInfo comme suit :
<!ELEMENT PasswordInfo (Password, ConfirmPassword)>
- TemplateTagName : cette partie spécifie le mappage de marques qui doit être utilisé pour le message. Le mappage des marques est défini ailleurs dans le fichier de définition du modèle, sous l'élément TemplateTag. Cela signifie que la valeur de l'élément TemplateTagName doit correspondre à l'attribut name d'un élément TemplateTag qui apparaît quelque part dans le fichier de définition du modèle. Pour plus de détails, reportez-vous à la section décrivant 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 du modèle :
<TemplateTag name='PasswordReset10Map'>
...
</TemplateTag>
Les éléments situés entre les marques 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 seul sous-élément appelé Command. L'élément Command est utilisé pour indiquer l'instruction de contrôleur WebSphere Commerce qui est exécutée lorsque le mappage du message a aboutit. Il contient un
attribut obligatoire appelé CommandName, qui est utilisé pour indiquer le nom de l'instruction. La valeur de cet attribut doit correspondre à une instruction existante enregistrée dans la table
URLREG. Par exemple, vous pouvez associer un message à la commande qui réinitialise un mot de passe en utilisant la syntaxe suivante :
<CommandMapping>
<Command CommandName='ResetPassword'/>
</CommandMapping>
Vous pouvez également associer plusieurs instructions au même message. Pour ce faire, vous devez utiliser les attributs supplémentaires de l'élément Command suivants :
- Attribut Condition : la syntaxe de condition est la suivante (
[] signifie que l'élément est facultatif, * signifie qu'il peut être répété) :
fieldName [="fieldValue "] [AND fieldName [="fieldValue "]]*
fieldName
- Il doit correspondre à l'attribut Field de l'élément
Tag
dans la définition TemplateTag. Si l'attribut XPath de cette marque existe dans le message XML entrant, alors la condition est vraie.
- fieldName="fieldValue "
- Le message XML contient une valeur associée à la zone fieldName. Si cette valeur est identique à fieldValue lors du mappage du message, la condition est vraie.
- fieldName1="fieldValue1" AND fieldName1="fieldValue2"
- Les valeurs du message XML sont associées aux zones fieldName1 et fieldName2 au moment de l'analyse du message. Si les valeurs sont identiques à fieldValue1 et fieldValue2
respectivement, alors la condition est vraie.
- Attribut TemplateTagName : si vous spécifiez l'attribut TemplateTagName pour cet élément
Command, un nouveau modèle de marque avec le nom défini dans TemplateTagName est utilisé pour le reste du message XML entrant chaque fois que la condition est vraie.
- Elément Constant : liste des constantes à inclure dans l'attribut TypedProperty de cette instruction.
- Field : nom de la zone de la paire de valeurs de noms qui sera incluse dans TypedProperty.
- FieldInfo: voir la définition dans TemplateTag.
La valeur doit être placée entre les marques <Constant> et </Constant>.
Voici un exemple simple de la manière dont vous pouvez utiliser les divers éléments Command pour les mettre en correspondance avec plusieurs instructions :
<CommandMapping>
<Command CommandName='ResetPassword'
Condition='Verb="Reset" AND Noun="Password"'/>
<Command CommandName='AdminResetPassword'
Condition='Verb="Reset" AND Noun="AdminPassword"'/>
</CommandMapping>
Dans cet exemple, des éléments Noun et Verb doivent être définis dans le fichier DTD du message.