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