Grupos de sustitución del modelo de mensaje

Los grupos de sustitución son una característica de esquema XML que proporciona un medio para sustituir un elemento por otro en un mensaje XML. Un grupo de sustitución es una lista de elementos globales que pueden aparecer en lugar de otro elemento global, denominado elemento de cabecera.

Un grupo de sustitución se define estableciendo la propiedad Grupo de sustitución en un elemento global (el elemento miembro) de forma que apunte a otro elemento global (el elemento de cabecera). Este añade el elemento miembro al grupo de sustitución del elemento de cabecera.

Nota: Si está generando diccionarios desde el conjunto de mensajes y desplegándolos en WebSphere Message Broker, deberá leer el tema Restricciones de esquema en el modelo de mensaje y tener en cuenta la sección relacionada con los grupos de sustitución.
Consejo: Si los mensajes no se devuelven nunca como XML o si tiene un modelo de mensaje simple, deberá tener en cuenta la posibilidad de utilizar un tipo complejo o un grupo con la Composición establecida en Elección, en lugar de utilizar grupos de sustitución.

Elementos

Elementos de cabecera
Un elemento de cabecera es simplemente un elemento que se puede sustituir. Cuando se analiza un mensaje, puede aparecer uno de los elementos miembros en lugar del elemento de cabecera sin producir un error de validación.
Elementos abstractos
Un elemento abstracto es un elemento de cabecera que se debe sustituir. El atributo 'abstracto' del elemento así lo indica. Normalmente, los elementos abstractos tienen otros elementos en el grupo de sustitución - de lo contrario, no sirven de mucho. Siempre que aparezca un elemento abstracto en una definición de mensaje, deberá aparecer en su lugar un miembro del grupo de sustitución.

Atributos

Atributo bloque en elementos
El atributo bloque en un elemento limita el conjunto de elementos globales que pueden sustituir el elemento. El atributo bloque puede tomar cualquier subconjunto de los valores restricción, extensión, sustitución o todo.
  • Si el atributo bloque contiene restricción, un elemento que esté basado en una restricción del tipo del elemento no podrá sustituir el elemento.
  • Si el atributo bloque contiene extensión, un elemento que esté basado en una extensión del tipo del elemento no podrá sustituir el elemento.
  • Si el atributo bloque contiene sustitución, un elemento que sea miembro del grupo de sustitución del elemento no podrá sustituir el elemento.
  • Si el atributo bloque contiene todo, se aplicarán todas las limitaciones indicadas más arriba.
Atributo final en elementos
El atributo final en un elemento limita el conjunto de elementos globales que pueden ser miembros del grupo de sustitución del elemento. El atributo final puede tomar cualquier subconjunto de los valores restricción, extensión o todo.
  • Si el atributo final contiene restricción, un elemento que esté basado en una restricción del tipo del elemento no podrá estar en el grupo de sustitución del elemento.
  • Si el atributo final contiene extensión, un elemento que esté basado en una extensión del tipo del elemento no podrá estar en el grupo de sustitución del elemento.
  • Si el atributo final contiene todo, se aplicarán las dos limitaciones indicadas más arriba.
Atributo bloque en tipos complejos
El atributo bloque en un tipo complejo limita el conjunto de otros tipos que pueden sustituir a dicho tipo. El atributo bloque puede tomar los valores restricción, extensión o todo. Los significados de estos valores son los mismos que los mostrados más arriba para el atributo bloque en un elemento. Un elemento que es miembro de un grupo de sustitución sólo puede sustituir el elemento de cabecera si el tipo es compatible con el atributo bloque del tipo del elemento de cabecera.
Atributos bloque y final por omisión
Se puede establecer un valor por omisión para los atributos bloque y final a nivel de archivo de definición de mensajes. Si se ha establecido un valor por omisión para uno de estos atributos o para ambos y no se ha establecido a nivel de objeto el atributo bloque o final pertinente, se utilizará el valor por omisión para dicho objeto. Puede alterar temporalmente el valor por omisión a nivel de objeto.
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ad10440_