Grupos de substituição são um recurso do Esquema XML que fornecem meios de substituir um elemento por outro em uma mensagem XML. Um grupo de substituição inclui uma lista de elementos globais que
podem aparecer no lugar de outro elemento global, chamado
elemento principal.
Um grupo de substituição é definido pela definição da propriedade
grupo de substituição em um
elemento global (o elemento membro), a ser apontado em
outro elemento global (o elemento principal). Isso adiciona o elemento membro ao grupo de substituição do elemento principal.
Nota: Se estiver gerando dicionários a partir de seu conjunto de mensagens e estiver implementando-os no
WebSphere Message Broker, será necessário o tópico
Restrições de Nomes do Modelo de Mensagem
e consultar a seção relacionada a grupos de substituição.
Dica: Se suas mensagens nunca forem processadas como XML
ou se você tiver um modelo de mensagem simples, é recomendável
utilizar um tipo complexo ou um grupo com
Composição definida como
Opção, em vez de
utilizar grupos de substituição.
Elementos
- Elementos Principais
- Um elemento principal é apenas um elemento que pode ser substituído. Quando uma mensagem é analisada, um de seus elementos membro pode aparecer no lugar do elemento principal,sem causar um erro de validação.
- Elementos Abstratos
- Um elemento abstrato é um elemento principal que deve ser substituído. O atributo 'abstract' no elemento indica isso. Geralmente, os elementos abstratos terão outros elementos em seu grupo de substituição - de outra maneira, eles terão pouca utilização. Sempre que um elemento abstrato aparecer em uma definição de mensagem, um membro de seu grupo de substituição deve aparecer no lugar.
Atributos
- O Atributo block em Elementos
- O atributo block em um
elemento limita o conjunto de elementos globais que podem substituir
o elemento. O atributo block
pode utilizar qualquer subconjunto dos valores
restrição,
extensão,
substituição ou
todos.
- Se o atributo block contiver restrição, um elemento baseado em uma restrição do tipo do elemento não poderá substituir o elemento.
- Se o atributo block contiver extensão, um elemento baseado em uma extensão do tipo do elemento não poderá substituir o elemento.
- Se o atributo block contiver substituição, um elemento membro do grupo de substituição do elemento não poderá substituir o elemento.
- Se o atributo
block contiver
todos, todos os limites
acima serão aplicáveis.
- O Atributo final em
Elementos
- O atributo final em um elemento limita o conjunto de elementos globais que podem ser membros do grupo de substituição do elemento. O atributo final pode obter qualquer subconjunto dos valores restriction, extension ou all.
- Se o atributo final contiver restrição, um elemento baseado em uma restrição do tipo do elemento não poderá estar no grupo de substituição do elemento.
- Se o atributo final contiver extensão, um elemento baseado em uma extensão do tipo do elemento não poderá estar no grupo de substituição do elemento.
- Se o atributo
final contiver
todos, todos os limites
acima serão aplicáveis.
- O Atributo block em
Tipos Complexos
- O atributo block em um tipo complexo limita o conjunto de outros tipos que podem substituir esse tipo.
O atributo block pode
utilizar os valores
restrição,
extensão ou
todos. Os
significados desses valores são os mesmos mostrados para o atributo
block em um elemento acima.
Um elemento que seja membro de um grupo de substituição poderá ser
substituto apenas do elemento principal se seu tipo for compatível
com o atributo block no tipo de elemento principal.
- Atributos block e
final padrão
- Um padrão para os atributos
block e
final pode ser definido no
nível do arquivo de definição de mensagens.
Se um padrão para um desses atributos ou para os dois tiver sido
definido e o atributo relevante
block
ou final não tiver sido
definido no nível do objeto, a definição padrão será utilizada para
aquele objeto. Você pode substituir a configuração padrão no nível do
objeto.