Espaços de Nomes do Modelo de Mensagem

Os documentos da instância XML e Esquemas XML podem utilizar espaços de nomes. Os espaços de nomes fornecem um método para qualificar nomes de objetos.

Um único documento da instância XML pode obter elementos e atributos que são definidos para e, possivelmente, utilizados por vários aplicativos. Dois elementos ou atributos diferentes no mesmo documento podem requerer o mesmo nome. Aplicativos individuais precisam reconhecer os elementos e os atributos para os quais foram projetados para processar. Em circunstâncias como essa, as definições podem ser diferenciadas umas das outras qualificando cada elemento com um espaço de nomes diferente. Isso evita problemas de conflitos de nomes e de reconhecimento incorreto.

Os Esquemas XML podem definir um espaço de nomes de destino. Os elementos globais, atributos, grupos e tipos definidos em um Esquema XML são qualificados pelo espaço de nomes de destino se ele tiver sido definido. Opcionalmente, os elementos e atributos locais também podem ser qualificados pelo espaço de nomes de destino. Assim, os espaços de nomes ajudam no desenvolvimento de uma biblioteca de Esquemas XML que pode ser desenvolvida de forma independente. O fornecimento do nome do espaço de nomes para um Esquema XML é exclusivo; um desenvolvedor não precisa se preocupar com conflitos de nomes com objetos definidos em outros Esquemas XML.

O escopo de um espaço de nomes vai além de seu documento de contenção e é identificado por um URI (Uniform Resource Identifier). Para atender à sua finalidade, um URI deve ser exclusivo. Você pode estar mais familiarizado com o conceito de uma URL (Universal Resource Locator). URIs geralmente utilizam a mesma sintaxe que as URLs, embora a definição de URI seja mais ampla do que a especificação de uma URL. Este é um exemplo de um URI: http://mycompany.com/xml_schema

Um prefixo de espaço de nomes é declarado como uma abreviação do nome completo do URI e é utilizado para qualificar todos os elementos que pertencem a esse espaço de nomes. O prefixo a ser substituído para um espaço de nomes é um documento de instância XML ou um Esquema XML é especificado utilizando um atributo xmlns ou xmlnsc. Um espaço de nomes padrão também pode ser definido utilizando um atributo xmlns ou xmlnsc. Se um espaço de nomes padrão estiver definido, qualquer elemento ou atributo sem prefixo será qualificado com o espaço de nomes padrão. Se nenhum espaço de nomes padrão estiver definido, qualquer elemento ou atributo sem prefixo não será qualificado por um espaço de nomes.

O Modelo de Mensagem
O modelo de mensagens fornece a capacidade de suportar espaços de nomes em conjuntos de mensagens. No entanto, você pode escolher se deseja ativar ou desativar espaços de nomes para seu conjunto de mensagens. Se escolher desativar espaços de nomes quando criar seu conjunto de mensagens, poderá ativar espaços de nomes em algum ponto posterior. No entanto, depois de ativar espaços de nomes para um conjunto de mensagens, não será possível desativar espaços de nomes.

Um único conjunto de mensagens que possui espaços de nomes ativados pode conter vários espaços de nomes diferentes. Cada espaço de nomes é representado por um Arquivo de Definição de Mensagem diferente. Ao criar um Arquivo de Definição de Mensagem, você pode escolher se ele deve ter um espaço de nomes associado ou se deve estar no espaço de nomes notarget.Se escolher associar um espaço de nomes a um Arquivo de Definição de Mensagem, também será necessário escolher um prefixo.

Se o Arquivo de Definição de Mensagem possuir um espaço de nomes associado, os seguintes objetos globais serão qualificados com o espaço de nomes:

  • Elementos
  • Atributos
  • Tipos Simples
  • Tipos Complexos
  • Grupos
  • Grupos de Atributos

Opcionalmente, os elementos e atributos locais podem ser qualificados com o espaço de nomes.

Os objetos definidos em um Arquivo de Definição de Mensagem podem fazer referência a objetos em outros Arquivos de Definição de Mensagem no mesmo conjunto de mensagens. Isso é obtido importando ou incluindo um Arquivo de Definição de Mensagem em outro.

Formato de Ligação XML
O espaço de nomes associado a um arquivo de definição de mensagem faz parte da camada lógica do modelo de mensagem. Portanto, ele não depende da presença de um Formato de Ligação XML. No entanto, se tiver um Formato de Ligação XML, as informações do espaço de nomes da camada lógica serão utilizadas para ocupar algumas das propriedades do Formato de Ligação XML. Se os espaços de nomes estiverem ativados para um Conjunto de Mensagens, no Formato de Ligação XML uma tabela de pares de URI/prefixo de espaço de nomes será mantida. Essa tabela é inicialmente ocupada com espaços de nomes de todos os Arquivos de Definição de Mensagem com seus prefixos quando são criados.

Se estiver utilizando o WebSphere Message Broker e seu conjunto de mensagens tiver espaços de nomes ativados, o Intermediário não armazenará os valores dos atributos xmlns ou xmlnsc na árvore quando analisar um documento de instância XML. Também não armazenará os valores de nenhum dos atributos Local de Esquema e Nenhum Local de Esquema do Espaço de Nomes. Isso ocorre porque, quando um documento XML é gravado, o Intermediário gera novamente estas informações a partir das propriedades do Formato de Ligação XML do conjunto de mensagens.

Se estiver utilizando WebSphere Message Broker, os pares de prefixo/URI da tabela de Espaço de Nomes serão utilizados pelo Domínio MRM quando estiver exibindo a mensagem XML. Os elementos e atributos que estão qualificados por um espaço de nomes são prefixados com o prefixo correspondente a partir da tabela. O Intermediário também gerencia a saída dos atributos xmlns ou xmlnsc correspondentes, que mapeiam os prefixos para espaços de nomes. Você pode escolher se os atributos xmlns ou xmlnsc de todas as entradas da tabela URI/Prefixo de Espaço de Nomes são colocadas na saída no início do documento ou se elas são colocadas na saída somente no documento quando requerido.

Se os espaços de nomes estiverem ativados para um Conjunto de Mensagens, no Formato de Ligação XML haverá uma tabela de localizações de esquemas que mapeiam URIs de espaço de nomes para nomes de arquivos. Você pode incluir entradas nesta tabela e também pode mapear um nome de arquivo para o espaço de nomes notarget. Se você estiver utilizando WebSphere Message Broker, esta tabela será utilizada para exibir os atributos schemaLocation e Nenhum Local de Esquema do Espaço de Nomes no início do documento XML.

Análise de Mensagens e ESQL
Se estiver utilizando WebSphere Message Broker, o domínio MRM e os analisadores de domínio XMLNS e XMLNSC reconhecerão os nomes prefixados nas mensagens XML que eles analisam e mapearão internamente esses nomes para o espaço de nomes correto. Os elementos e atributos no dicionário gerado a partir do modelo de mensagens podem ser qualificados ou não qualificados com um espaço de nomes, conforme discutido na seção do modelo de mensagem.

Se estiver utilizando o formato XML no domínio MRM, os elementos ou os atributos serão correspondidos com base no espaço de nomes no dicionário quando a mensagem analisada for comparada com o dicionário gerado a partir do modelo de mensagens. Assim, para que um elemento ou atributo em uma mensagem corresponda ao dicionário, seu nome e o espaço de nomes devem corresponder.

Se estiver utilizando WebSphere Message Broker, o suporte será fornecido para permitir a especificação de espaços de nomes ao gravar ESQL. Não será necessário gravar ESQL que reconhece espaço de nomes, se você não estiver utilizando espaços de nomes. No entanto, se decidir utilizar espaços de nomes, seus arquivos de definição de mensagem poderão direcionar qualquer espaço de nomes escolhido e será necessário gravar ESQL que reconheça espaços de nomes. O espaço de nomes no qual um elemento reside está armazenado na árvore de mensagens quando analisado. Essa é uma propriedade lógica e é mantida independente do formato de ligação físico no qual as mensagens são analisadas e gravadas. Uma nova sintaxe foi adicionada ao ESQL para facilitar sua referência a espaços de nomes de elementos utilizando prefixos definidos.

Importando de Outros Formatos
O modelo de mensagem permite criar Arquivos de Definição de Mensagens a partir de outros formatos, importando-os para o Message Brokers Toolkit.
  • Se você importar um arquivo XML DTD, o Arquivo de Definição de Mensagem criado estará no espaço de nomes sem destino.
  • Se você importar um arquivo de Esquema XML, o espaço de nomes de destino do Arquivo de Definição de Mensagem criado dependerá de se os espaços de nomes foram ativados para o conjunto de mensagens.
    • Se os espaços de nomes forem ativados, o espaço de nomes de destino do Arquivo de Definição de Mensagem criado será o espaço de nomes de destino do Esquema XML que está sendo importado.
    • Se os espaços de nomes estiverem desativados para o conjunto de mensagens, o Arquivo de Definição de Mensagem criado estará no espaço de nomes sem destino. Esse tipo de importação não fornece suporte completo a espaços de nomes. Se estiver utilizando o WebSphere Message Broker, não será necessário gravar ESQL ou Java ciente do espaço de nomes para processar uma mensagem XML analisada no dicionário gerado a partir desse modelo de mensagens. Para saber as razões pelas quais você pode querer fazer isso, consulte Importando Esquema XML para Conjuntos de Mensagens com Espaços de Nomes Desativados
  • Se você importar um Copybook COBOL ou um arquivo de Cabeçalho C, o espaço de nomes de destino do Arquivo de Definição de Mensagem criado dependerá de se os espaços de nomes foram ativados para o conjunto de mensagens.
    • Se os espaços de nomes forem ativados, o espaço de nomes de destino do Arquivo de Definição de Mensagem criado será o espaço de nomes sem destino. Esse espaço de nomes padrão pode ser substituído pela especificação de um espaço de nomes de destino no assistente de Novo Arquivo de Definição de Mensagem. Para saber as razões pelas quais você pode querer fazer isso, consulte Espaços de Nomes com Mensagens Não XML.
    • Se os espaços de nomes estiverem desativados para o conjunto de mensagens, o Arquivo de Definição de Mensagem criado estará no espaço de nomes sem destino

Informações Adicionais sobre XML

No W3C (World Wide Web Consortium) Web site, consulte também:

Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ad00820_