WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

XMLNSC: Declarações de Espaço de Nomes

O analisador XMLNSC fornece suporte integral a espaços de nomes.

O analisador XMLNSC configura o espaço de nomes correto em cada elemento da sintaxe que ele cria enquanto analisa uma mensagem e armazena declarações de espaço de nomes na árvore de mensagens. O analisador utiliza as declarações de espaço de nomes para selecionar os prefixos apropriados durante a saída da árvore de mensagens.

O analisador XMLNSC utiliza os seguintes tipos de campos para representar declarações de espaço de nomes. Use as constantes de tipo de campo que estão listadas nesta tabela quando criar declarações de espaço de nomes na árvore de mensagens.

Tabela 1. Constantes de Tipo de Campo Específicas
Construção de XML Constante do tipo de campo XMLNSC Valor
Declaração de espaço de nomes
XMLNSC.SingleNamespaceDecl
XMLNSC.DoubleNamespaceDecl
0x03000102
0x03000103
Ao acessar elementos e atributos na árvore de mensagens, não utilize constantes listadas na tabela anterior; em vez disso, utilize as constantes de tipo de campo genérico compatível com ambos o s valores da tabela acima.
Tabela 2. Constantes de Tipo de Campo Genéricas
Construção de XML Constante do tipo de campo XMLNSC Propósito
Declaração de espaço de nomes XMLNSC.NamespaceDecl Corresponde às declarações de espaço de nomes entre aspas simples e duplas

Exemplos de Código ESQL

Exemplo 1: Declarando um Prefixo Não Vazio
DECLARE space1 NAMESPACE 'namespace1';
SET OutputRoot.XMLNSC.space1:root.(XMLNSC.NamespaceDecl)xmlns:ns1 = space1;
SET OutputRoot.XMLNSC.space1:root.space1:example = 'ABCDE';
Isso cria a seguinte mensagem XML:
<ns1:root xmlns:ns1="namespace1">
    <ns1:example>ABCDE</ns1:example>
</ns1:root>
Observe que a constante NAMESPACE space1 é apenas uma variável local no ESQL; ela não afeta o prefixo de espaço de nomes ns1 que foi definido pelo elemento NameSpaceDecl e aparece na mensagem de saída.

Entretanto, conforme mostrado aqui, space1 pode ser usado para inicializar NameSpaceDecl para ns1. Isto evita a necessidade de duplicar o URI de espaço de nomes ('namespace1' neste exemplo), que na prática geralmente é uma cadeia muito mais longa.

Exemplo 2: Declarando um Prefixo Vazio
DECLARE space1 NAMESPACE 'namespace1';
SET OutputRoot.XMLNSC.space1:root.(XMLNSC.NamespaceDecl)xmlns = space1;
SET OutputRoot.XMLNSC.space1:root.space1:example = 'ABCDE';
Isso cria a seguinte mensagem XML:
<root xmlns="namespace1">
    <example>ABCDE</example>
</root>
Observe que os elementos da sintaxe root e example devem ter um espaço de nomes não-vazio. A declaração de espaço de nomes padrão significa que qualquer elemento filho sem um prefixo está no espaço de nomes namespace1.
Exemplo 3: Exemplo de Uso Incorreto
DECLARE space1 NAMESPACE 'namespace1';
SET OutputRoot.XMLNSC.root.(XMLNSC.NamespaceDecl)xmlns = space1;
SET OutputRoot.XMLNSC.root.example = 'ABCDE';
Esse exemplo faz com que o analisador XMLNSC emite a mensagem BIP5014 ao tentar criar uma árvore de mensagens. Os elementos root e example estão dentro do escopo da declaração de espaço de nomes padrão; portanto, no ESQL, estes elementos devem ser qualificados por um prefixo de espaço de nomes ligado a esse espaço de nomes.
Exemplo 4: Incluindo uma declaração de namespace com um prefixo
SET OutputRoot.(XMLNSC.DoubleNamespaceDecl)xmlns:ns2 = space1;
Esse exemplo de uma instrução SET cria uma declaração de namespace com o nome ns2 no namespace xmlns.
CREATE LASTCHILD OF OutputRoot IDENTITY (XMLNSC.DoubleNamespaceDecl)xmlns:ns2 VALUE space1;
CREATE LASTCHILD OF OutputRoot TYPE XMLNSC.DoubleNamespaceDecl NAMESPACE 'xmlns' NAME 'ns2' VALUE space1;
Esses exemplos de uma instrução CREATE também criam uma declaração de namespace com o nome ns2 no namespace xmlns.
Entretanto, lembre-se de que o seguinte exemplo de uma instrução CREATE cria uma declaração de namespace com um nome xmlns:ns2 no namespace padrão:
CREATE LASTCHILD OF OutputRoot TYPE XMLNSC.DoubleNamespaceDecl NAME 'xmlns:ns2' VALUE space1;
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:28:54


Tópico de ReferênciaTópico de Referência | Versão 8.0.0.5 | ac67194_