Elemento TemplateDocument de un archivo de definición de plantilla
Para cada mensaje XML de entrada, debe haber al menos un documento de
plantilla definido en el mensaje. Esto se define en el elemento
TemplateDocument. El elemento
TemplateDocument tiene cuatro subelementos:
- DocumentType (con un atributo de versión opcional): Esta
parte especifica el nombre del documento XML, o nombre del elemento raíz, y el
atributo de "versión" del elemento raíz, si existe. El siguiente es un ejemplo del elemento DocumentType:
<DocumentType version='1.0'>Reset_Password</DocumentType>
- StartElement: Esta parte especifica el elemento desde el cual el correlacionador
de mensajes XML inicia la correlación de códigos. Debe corresponderse con un elemento del DTD del mensaje.
La correlación de códigos genera las parejas de nombre/valor que se
utilizan como parámetros de los mandatos.
El siguiente es un ejemplo de utilización de StartElement:
<StartElement>PasswordInfo</StartElement>
En este ejemplo, debe haber un elemento llamado
PasswordInfo definido en el archivo DTD de este mensaje. Por ejemplo,
el archivo DTD debe contener una línea similar a la siguiente que defina
un elemento PasswordInfo:
<!ELEMENT PasswordInfo (Password, ConfirmPassword)>
- TemplateTagName: Esta parte especifica qué
correlación de códigos se ha de utilizar para el mensaje.
La correlación de códigos se define en otro lugar del archivo de
definición de plantilla bajo el elemento TemplateTag.
Esto significa que el valor del elemento TemplateTagName
debe coincidir con el atributo name de un elemento
TemplateTag que aparece en algún lugar del archivo de
definición de plantilla. Consulte la sección sobre el elemento TemplateTag
para obtener más detalles. El ejemplo siguiente ilustra la utilización del elemento TemplateTagName:
<TemplateTagName>PasswordReset10Map</TemplateTagName>
En este ejemplo, debe existir el elemento TemplateTag siguiente en algún
lugar del archivo de definición de plantilla:
<TemplateTag name='PasswordReset10Map'>
...
</TemplateTag>
Los elementos que hay entre los códigos de inicio y fin dependen de la correlación del mensaje.
- CommandMapping: Este elemento determina a qué mandatos invoca el mensaje.
El elemento contiene un subelemento llamado Command. El elemento Command
se utiliza para indicar el mandato de controlador WebSphere Commerce que se ejecuta
cuando el mensaje se correlaciona satisfactoriamente. Contiene un atributo obligatorio
llamado CommandName, que se utiliza para indicar el nombre del mandato. El valor de este atributo debe corresponderse con un mandato existente que
esté registrado en la tabla URLREG. Por ejemplo, puede asociar un mensaje
al mandato que restaura una contraseña utilizando la sintaxis siguiente:
<CommandMapping>
<Command CommandName='ResetPassword'/>
</CommandMapping>
También puede asociar varios mandatos al mismo mensaje: Para hacerlo,
deberá utilizar los siguientes atributos adicionales del elemento Command:
- Atributo Condition: La sintaxis de condition es la
siguiente ([] significa que es opcional, * significa que se puede repetir):
fieldName [="fieldValue "] [AND fieldName [="fieldValue "]]*
fieldName
- Debe coincidir con el atributo Field del elemento
Tag en la definición de TemplateTag. Si en el mensaje XML de
entrada existe el atributo XPath de este código,
entonces el valor de condition es true.
- fieldName="fieldValue "
- Un valor del mensaje XML se establece en el del campo fieldName. Cuando
se correlaciona el mensaje, si el valor es el mismo que el de fieldValue,
el valor de condition es true.
- fieldName1="fieldValue1" AND fieldName1="fieldValue2"
- Los valores del mensaje XML se establecen en los campos fieldName1 y fieldName2
cuando se analiza el mensaje. Si los valores son iguales a los de fieldValue1 y fieldValue2
respectivamente, entonces el valor de condition es true.
- Atributo TemplateTagName: Si especifica el atributo
TemplateTagName para este elemento Command, cuando el valor de
condition es true, se utilizará una nueva plantilla de códigos con
el nombre que hay definido en TemplateTagName para el resto del mensaje
XML de entrada.
- Elemento Constant: la lista de constantes que
se han de poner en TypedProperty para ese mandato.
- Field: El nombre del campo de la pareja de nombre/valor
que se pondrá en TypedProperty.
- FieldInfo: Consulte la definición de TemplateTag.
El valor debe colocarse entre los códigos <Constant> y </Constant>.
El siguiente es un ejemplo sencillo de cómo se pueden utilizar varios
elementos de mandato para correlacionar varios mandatos:
<CommandMapping>
<Command CommandName='ResetPassword' Condition='Verb="Reset" AND
Noun="Password"'/>
<Command CommandName='AdminResetPassword' Condition='Verb="Reset" AND
Noun="AdminPassword"'/>
</CommandMapping>
En este ejemplo, los elementos Noun y Verb deben estar definidos en el archivo DTD del mensaje.