Espaços de Nomes do Modelo de Mensagem

Os espaços de nomes fornecem um método para qualificar nomes de objetos.

Os documentos da instância XML e Esquemas XML podem utilizar espaços de nomes.

Um único documento da instância XML pode conter 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. Os aplicativos individuais precisam conseguir reconhecer os elementos e os atributos que são designados ao processo. 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, os atributos, os grupos e os tipos são definidos dentro de um Esquema XML que são qualificados pelo espaço de nomes de destino, se tiver sido definido. Opcionalmente, os elementos e atributos locais também podem ser qualificados pelo espaço de nomes de destino. Portanto, os espaços de nomes ajudam no desenvolvimento de uma biblioteca de Esquemas XML que pode ser desenvolvida independentemente. Se o nome do espaço de nomes que for utilizado para um Esquema XML for exclusivo, você não precisa se preocupar quanto à colisão de nomes com os objetos que são definidos dentro dos 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 a seu propósito, uma URI deve ser exclusiva. Você pode estar mais familiarizado com o conceito de uma URL (Universal Resource Locator). As URIs geralmente utilizam a mesma sintaxe das URLs, mas a definição URI é maior 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 redução para o nome completo da 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 em um documento da instância XML ou Esquema XML é especificado utilizando um atributo xmlns. Um espaço de nomes padrão também pode ser definido utilizando um atributo xmlns. Se um espaço de nomes padrão for 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 os espaços de nomes para seu conjunto de mensagens. Se você optar por desativar os espaços de nomes ao criar seu conjunto de mensagens, pode ativar os espaços de nomes posteriormente. No entanto, quando tiver ativado os espaços de nomes para um conjunto de mensagens, não poderá desativar os 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 terá um espaço de nomes associado ou se estará no espaço de nomes sem destino. Se você optar por associar um espaço de nomes a um Arquivo de Definição de Mensagem, também deve escolher um prefixo.

Se o Arquivo de Definição de Mensagem tiver 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 que são definidos em um Arquivo de Definição de Mensagem podem fazer referência a objetos em outros Arquivos de Definição de Mensagem dentro do mesmo conjunto de mensagens. Para isso, importe ou inclua um arquivo de Definição de Mensagem dentro de outro Arquivo de Definição de Mensagem.

Análise de Mensagem e Fluxos de Mensagens
Os analisadores WebSphere Message Broker cientes de espaço de nomes reconhecem os nomes com prefixos nas mensagens XML que eles analisam e os mapeiam internamente para o espaço de nomes correto. Os elementos e os atributos podem ser qualificados ou não qualificados com um espaço de nomes, conforme discutido na seção do modelo de mensagem.

Se você 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 correspondida no dicionário que é gerado a partir do modelo de mensagem. Portanto, para que um elemento ou atributo em uma mensagem corresponda ao dicionário, seu nome e seu espaço de nomes devem corresponder.

É fornecido um suporte que permite especificar os espaços de nomes ao gravar ESQL ou Java. Não é necessário gravar ESQL ou Java que reconheça espaço de nomes, se você não estiver utilizando espaços de nomes. No entanto, se você decidir utilizar espaços de nomes, seus arquivos de definição de mensagem podem direcionar qualquer espaço de nomes que escolher e for necessário para gravar ESQL ou Java que reconhecem espaço de nomes. O espaço de nomes no qual um elemento reside está armazenado na árvore de mensagens quando analisado. Essa é a propriedade lógica e é retida, independentemente do formato de ligação física no qual as mensagens são analisadas ou gravadas. A sintaxe foi incluída no ESQL para facilitar a referência dos espaços de nomes do elemento que utilizam prefixos definidos. No Java, as expressões XPath são utilizadas para fazer referência aos elementos.

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 que é criado ficará 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 forem 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, você não terá que gravar ESQL ou Java que reconhece espaço de nomes para processar uma mensagem XML analisada no dicionário que é gerado a partir desse modelo de mensagem. 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 MRM Não-XML.
    • Se os espaços de nomes forem 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:

Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:11:59

ad00820_