Grupos de sustitución

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

Un grupo de sustitución se define estableciendo la propiedad del grupo de sustitución en un elemento global (el elemento miembro) de modo que apunte a otro elemento global (el elemento deencabezado). Esto añade el elemento miembro al grupo de sustitución del elemento de encabezado.

Nota: Si está generando diccionarios a partir del conjunto de mensajes y los despliega en WebSphere Business Integration Message Broker, debe leer el tema Limitaciones del esquema y tener en cuenta la sección relacionada con los grupos de sustitución.
Consejo: Si los mensajes no se muestran nunca como XML o si tiene un sencillo modelo de mensaje, debe pensar en utilizar un tipo complejo o un grupo con Composición establecido en Elección, en lugar de utilizar grupos de sustitución.

Elementos

Elementos de encabezado
Un elemento de encabezado simplemente es un elemento que se puede sustituir. Cuando se analiza un mensaje, uno de sus elementos miembro puede aparecer en lugar del elemento de encabezado sin generar un error de validación.
Elementos abstractos
Un elemento abstracto es un elemento de encabezado que debe sustituirse. El atributo abstracto, "abstract", del elemento lo indica. Generalmente, los elementos abstractos tendrán otros elementos en su grupo de sustitución, de lo contrario, tiene poca utilidad. Siempre que aparece un elemento abstracto en una definición de mensaje, en su lugar debe aparecer un miembro de su grupo de sustitución.

Atributos

El atributo block de los elementos
El atributo block de un elemento limita el conjunto de elementos globales que pueden sustituir el elemento. El atributo block puede tomar cualquier subconjunto de los valores restriction, extension, substitution, o all.
  • Si el atributo block contiene restriction, un elemento que esté basado en una restricción del tipo de elemento no puede sustituir el elemento.
  • Si el atributo de bloque contiene la extensión, un elemento que esté basado en una extensión del tipo de elemento no puede sustituir el elemento.
  • Si el atributo block contiene substitution, un elemento que sea miembro del grupo de sustitución del elemento no puede sustituir el elemento.
  • Inicio del cambioSi el atributo block contiene all, se aplican todas las limitaciones anteriores. Fin del cambio
El atributo final de los elementos
El atributo final de un elemento limita el conjunto de elementos globales que puede ser un miembro del grupo de sustitución del elemento. El atributo final puede tomar cualquier subconjunto de los valores restriction, extension o Inicio del cambioallFin del cambio.
  • Si el atributo final contiene restriction, un elemento basado en una restricción del tipo de elemento no puede estar en el grupo de sustitución del elemento.
  • Si el atributo final contiene extension, un elemento basado en una extensión del tipo de elemento no puede estar en el grupo de sustitución del elemento.
  • Inicio del cambioSi el atributo final contiene all, se aplican los dos límites anteriores. Fin del cambio
El atributo block en los tipos complejos.
El atributo block de un tipo complejo limita el conjunto de otros tipos que pueden sustituir a dicho tipo. El atributo block puede tomar los valores restriction, extension, o all. Inicio del cambioEl significado de estos valores es el mismo que los que aparecen para el atributo de bloque de un elemento anterior. Fin del cambio Un elemento que sea miembro de un grupo de sustitución solamente puede sustituir el elemento de encabezado si su tipo es compatible con el atributo de bloque del tipo del elemento de encabezado.
Los atributos block y final por omisión
Se puede establecer un valor por omisión para los atributosblock y final en el nivel de archivo de definiciones de mensajes. Si se ha establecido un valor por omisión para uno o ambos atributos y el atributo block o final relevante no se ha establecido a nivel de objeto, se utilizará el valor por omisión para dicho objeto. Puede alterar temporalmente el valor por omisión a nivel de objeto.

Conceptos relacionados
Esquema XML
Limitaciones del esquema
Herencia de tipo