Elemento TemplateDocument di un file di definizione maschera
Per ogni messaggio XML in entrata deve esistere almeno un
documento maschera definito all'interno del messaggio. Questo viene definito nell'elemento TemplateDocument. L'elemento TemplateDocument ha tre elementi secondari:
- DocumentType (con attributo di versione facoltativo): Questa parte specifica il nome del documento XML o il nome dell'elemento radice e l'attributo della "versione" dell'elemento radice, se esiste. Di seguito è riportato un esempio dell'elemento DocumentType:
<DocumentType version='1.0'>Reset_Password</DocumentType>
- StartElement: Questa parte specifica l'elemento dal quale il compilatore di messaggi XML avvia la procedura di corrispondenza delle tag. Deve corrispondere a un elemento nel DTD per il messaggio. La
procedura di associazione tag genera le coppie nome-valore che
vengono utilizzate come parametri di comandi. Di seguito è riportato
un esempio dell'utilizzo di StartElement:
<StartElement>PasswordInfo</StartElement>
In questo esempio, ci sarà un elemento definito PasswordInfo
nel file DTD per questo messaggio. Per esempio, il file DTD
dovrebbe contenere una riga simile alla seguente, che definisce un
elemento PasswordInfo:
<!ELEMENT PasswordInfo (Password, ConfirmPassword)>
- TemplateTagName: Questa parte specifica la
corrispondenza di tag da utilizzare per il messaggio. Questa corrispondenza viene definita in qualsiasi punto del file di
definizione maschera sotto l'elemento TemplateTag. Ciò significa che il valore dell'elemento TemplateTagName dovrebbe corrispondere all'attributo name di un elemento TemplateTag che viene visualizzato in un punto all'interno del file di definizione. Per maggiori dettagli fare
riferimento all'elemento TemplateTag. L'esempio seguente illustra l'utilizzo dell'elemento TemplateTagName:
<TemplateTagName>PasswordReset10Map</TemplateTagName>
In questo esempio, l'elemento TemplateTag seguente dovrebbe
essere presente in un punto qualsiasi del file di definizione
maschera:
<TemplateTag name='PasswordReset10Map'>
...
</TemplateTag>
Gli elementi tra le tag di inizio e fine dipendono dalla
corrispondenza del messaggio.
- CommandMapping: Questo elemento determina i
comandi che il messaggio richiama. L'elemento contiene un elemento secondario definito Command. L'elemento Command viene utilizzato per indicare il comando del controller di WebSphere Commerce che viene eseguito quando il messaggio viene analizzato correttamente. Esso contiene un attributo obbligatorio definito CommandName che viene utilizzato per indicare il nome del comando. Il valore di questo attributo deve corrispondere a un comando esistente registrato nella tabella URLREG. Ad esempio, è possibile associare un messaggio al
comando che reimposta una password utilizzando la sintassi seguente:
<CommandMapping>
<Command CommandName='ResetPassword'/>
</CommandMapping>
E' possibile associare più comandi allo stesso messaggio. Per fare ciò, è necessario utilizzare i seguenti attributi aggiuntivi
dell'elemento Command:
- Attributo di condizione: La sintassi di condizione è la seguente ( [] significa che è facoltativo, * significa che può essere ripetuto):
fieldName [="fieldValue "] [AND fieldName [="fieldValue "]]*
fieldName
- Dovrebbe corrispondere all'attributo
Field dell'elemento Tag
nella definizione TemplateTag. Se l'attributo XPath di questa tag esiste nel messaggio XML in entrata, la condizione è vera.
- fieldName="fieldValue "
- Un valore nel messaggio XML viene impostato con il campo in fieldName. In fase di analisi del messaggio, se il valore è uguale a fieldValue, la condizione è vera.
- fieldName1="fieldValue1" AND fieldName1="fieldValue2"
- I valori del messaggio XML vengono impostati nei campi fieldName1 e fieldName2 in fase di analisi del messaggio. Se i valori sono uguali rispettivamente a fieldValue1 e fieldValue2, la condizione è vera.
- Attributo TemplateTagName: Se viene specificato l'attributo TemplateTagName per questo elemento Command, ogni volta che la condizione diventa vera, verrà utilizzata una nuova maschera di tag con il nome definito in TemplateTagName per il resto del messaggio XML in entrata.
- Elemento Constant: L'elenco di costanti da inserire in TypedProperty per quel comando.
- Field: Il nome del campo della coppia nome-valore che verrà inserita in TypedProperty.
- FieldInfo: Vedere la definizione in TemplateTag.
Il valore va inserito tra le tag <Constant>
e </Constant>.
Di seguito è riportato un esempio di come utilizzare i vari
elementi Command per trovare corrispondenze tra più comandi:
<CommandMapping>
<Command CommandName='ResetPassword'
Condition='Verb="Reset" AND Noun="Password"'/>
<Command CommandName='AdminResetPassword'
Condition='Verb="Reset" AND Noun="AdminPassword"'/>
</CommandMapping>
In questo esempio, dovrebbero esistere gli elementi
Noun e Verb definiti nel file DTD per il messaggio.