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.
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:
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.
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.
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.
No W3C (World Wide Web Consortium) Web site, consulte também: