Sobre a Amostra XMLNSC Namespaces

Você pode utilizar mensagens XML que utilizam ou não espaços de nomes no WebSphere Message Broker.

A seguir está um exemplo de uma mensagem que não utiliza espaços de nomes:

<?xml version="1.0" encoding="UTF-8"?>    
<SaleListMessage>
     <SaleEnvelope>
         <Header>
          <SaleListCount>1</SaleListCount>
         </Header>
     <SaleList>
      <Invoice>
 .....     
</SaleList>
     <Trailer>     
  <CompletionTime>2000-01-0100:00:01.000000</CompletionTime>     
</Trailer>   
</SaleEnvelope></SaleListMessage> 

A seguir está um exemplo de uma mensagem que utiliza espaços de nomes:

<?xml version="1.0" encoding="UTF-8"?>   
<samp:SaleListMessage 
xmlns:samp="http://www.samplemessage.broker.hursley.ibm.com"    
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
xsi:schemaLocation="http://www.samplemessage.broker.hursley.ibm.com/SampleMessageNamespace1.xsd">
 <SaleEnvelope>      <Header>          <SaleListCount>1</SaleListCount>         </Header>     <SaleList>      <Invoice> .....  </SaleList>     <Trailer>      <CompletionTime>2000-01-0100:00:01.000000</CompletionTime>    </Trailer>  </SaleEnvelope> </samp:SaleListMessage>

Esta amostra contém um conjunto de mensagens e três fluxos de mensagens.

Detalhes do conjunto de mensagens

O conjunto de mensagens CHANGENAMESPACEMS tem um domínio de tempo de execução XMLNSC e contém arquivos de definição de mensagens gerados a partir de três esquemas XML:

Os arquivos de definições de mensagens modelam SaleListMessage que é usado em muitas amostras do WebSphere Message Broker. Essas definições de mensagens são idênticas, exceto por seus espaços de nomes. Os esquemas são necessários para validar as mensagens ao entrar e sair dos fluxos de mensagens.

Detalhes do fluxo de mensagens

O projeto do Message Broker CHANGENAMESPACEMF contém os seguintes fluxos de mensagens:

  1. Incluir um espaço de nomes: ADDNAMESPACEMF
  2. Alterar um espaço de nomes existente: CHANGENAMESPACEMF
  3. Excluir um espaço de nomes: DELETENAMESPACEMF

Descrições de cada um desses fluxos de mensagens:

Fluxo de mensagens ADDNAMESPACEMF

Esse fluxo de mensagens inclui os nós MQInput, Compute e MQOutput.

O fluxo de mensagens recebe uma mensagem XML via protocolo do WebSphere MQ e emite como saída uma mensagem de resposta XML usando o WebSphere MQ. O analisador XMLNSC é utilizado pelo fluxo de mensagens e a validação está ativa.

A mensagem de entrada do WebSphere MQ não contém nenhum elemento com espaços de nomes. O fluxo de mensagens inclui um espaço de nomes para o elemento-raiz da mensagem. A mensagem de entrada do WebSphere MQ pode conter um cabeçalho MQRFH2 para especificar o espaço de nomes de destino dinamicamente. O cabeçalho deve conter o seguinte no elemento NameValueData:

<usr>
<targetNamespace>URL2</targetNamespace>
<targetSchemaLocation>URL3</targetSchemaLocation>
</usr>

O elemento targetSchemaLocation é opcional.

Se nenhum cabeçalho MQRFH2 estiver presente, ou se o cabeçalho MQRFH2 não puder ser processado, o espaço de nomes será alterado de acordo com os seguintes valores:

O nó Compute chama uma função ESQL denominada ChangeNamespaceInOutputRoot. Para obter detalhes da função ESQL, consulte Construindo a Amostra XMLNSC Namespaces.

Fluxo de mensagens CHANGENAMESPACEMF

Esse fluxo de mensagens inclui os nós MQInput, Compute e MQOutput.

O fluxo de mensagens recebe uma mensagem XML via protocolo do WebSphere MQ e emite como saída uma mensagem de resposta XML usando o WebSphere MQ. O analisador XMLNSC é usado pelo fluxo de mensagens e a validação está ativa.

A mensagem de entrada do WebSphere MQ contém elementos com espaços de nomes e pode conter elementos de diversos espaços de nomes. O fluxo de mensagens pode alterar um dos espaços de nomes existentes. A mensagem de entrada do WebSphere MQ também pode conter um cabeçalho MQRFH2 para especificar o espaço de nomes de origem, de destino ou ambos, dinamicamente. O cabeçalho contém o seguinte no elemento NameValueData:

<usr>
<sourceNamespace>URL1</sourceNamespace>
<targetNamespace>URL2</targetNamespace>
<targetSchemaLocation>URL3</targetSchemaLocation>
</usr>

O elemento targetSchemaLocation é opcional.

Se nenhum cabeçalho MQRFH2 estiver presente, ou se o cabeçalho MQRFH2 não puder ser processado, o espaço de nomes será alterado de acordo com os seguintes valores:

Se a origem ou o destino não tiver um espaço de nomes, especifique NONAMESPACE como sourceNamespace, targetNamespace ou ambos.

<usr>
<sourceNamespace>URL1</sourceNamespace>
<targetNamespace>NONAMESPACE</targetNamespace>
</usr>

O nó Compute chama uma função ESQL denominada ChangeNamespaceInOutputRoot. Para obter detalhes da função ESQL, consulte Construindo a Amostra XMLNSC Namespaces.

Fluxo de mensagens DELETENAMESPACEMF

Esse fluxo de mensagens inclui os nós MQInput, Compute e MQOutput.

Esse fluxo de mensagens recebe uma mensagem XML via protocolo do WebSphere MQ e emite como saída uma mensagem de resposta XML usando o WebSphere MQ. O analisador XMLNSC é usado pelo fluxo de mensagens e a validação está ativa.

A mensagem de entrada do WebSphere MQ contém elementos com espaços de nomes e pode conter elementos de diversos espaços de nomes. Este fluxo de mensagens exclui referências a um dos espaços de nomes existentes.

A mensagem de entrada do WebSphere MQ pode conter um cabeçalho MQRFH2 para especificar o espaço de nomes de origem dinamicamente. O cabeçalho deve conter o seguinte no elemento NameValueData:

<usr>
<sourceNamespace>URL1</sourceNamespace>
</usr>

Se nenhum cabeçalho MQRFH2 estiver presente, ou se o cabeçalho MQRFH2 não puder ser processado, o espaço de nomes será alterado de acordo com os seguintes valores:

O nó Compute chama uma função ESQL denominada ChangeNamespaceInOutputRoot. Para obter detalhes da função ESQL, consulte Construindo a Amostra XMLNSC Namespaces.

Para obter uma explicação detalhada sobre como executar cada amostra, consulte Executando a Amostra XMLNSC Namespaces.

Voltar para o Início da Amostra