Um Arquivo de Definição de Mensagem pode reutilizar os objetos de modelo de mensagem definidos em outro Arquivo de Definição de Mensagem. Há dois mecanismos que o Esquema XML fornece para fazer isso: import e include. Os espaços de nomes dos dois arquivos determinam se import ou include deve ser utilizado:
O arquivo de destino tem um espaço de nomes de destino | O arquivo de destino tem um espaço de nomes sem destino | |
---|---|---|
O arquivo pai tem um espaço de nomes de destino | xsd:import | xsd:include1 |
O arquivo pai tem um espaço de nomes sem destino | xsd:import | xsd:include |
Quando import ou include forem utilizados, os objetos globais do arquivo de destino poderão ser utilizados no arquivo pai. Por exemplo, um elemento do arquivo pai pode ter um tipo complexo definido no arquivo de destino.
O espaço de nomes de objetos no arquivo de destino é preservado no arquivo pai, com a exceção observada na tabela anterior de um arquivo de espaço de nomes de destino incluindo um arquivo de espaço de nomes sem destino. Essa exceção é, às vezes, chamada de efeito camaleão do espaço de nomes.
Os espaços de nomes camaleão têm suporte limitado quando utilizados com o domínio MRM. Quando referido em um arquivo pai, os objetos do arquivo de destino aparecem no espaço de nomes do arquivo pai, mas têm informações de formato físico padrão designadas. Ou seja, as informações de formato físico definidas no arquivo de destino não estão disponíveis para utilização no arquivo pai. Utilize os Espaços de Nomes Camaleão somente no domínio MRM para modelar mensagens XML quando as informações de formato físico não tiverem mudado do padrão.
O Esquema XML fornece uma variação de xsd:include chamado xsd:redefine, que não é suportado pelo WebSphere Message Broker. A utilização de xsd:redefine fornecerá um erro da lista de tarefas. Uma Correção Rápida é oferecida para converter ocorrências de xsd:redefine em xsd:include.