Nó XMLTransformation

Este tópico contém as seguintes seções:

Finalidade

Utilize o nó XMLTransformation para transformar uma mensagem XML em outro formato de mensagem XML, de acordo com as regras fornecidas por uma folha de estilo XSL (eXtensible Stylesheet Language).

Você pode especificar o local da folha de estilo para aplicar esta transformação em uma de três maneiras:

  1. Você pode utilizar propriedades do nó. Isto assegura que a transformação definida por esta única folha de estilo seja aplicada a cada mensagem processada por este nó.
  2. Você pode utilizar o conteúdo dos dados XML na própria mensagem. Isto transforma a mensagem de acordo com uma folha de estilo definida pela própria mensagem.
  3. Início da mudançaVocê pode configurar um valor na pasta LocalEnvironment. Esse valor deve ser configurado (por exemplo, em um nó Compute) antes do nó XMLTransformation. Portanto, é possível utilizar várias entradas para determinar qual folha de estilo utilizar para esta mensagem, como o conteúdo de dados da mensagem ou um valor em um banco de dados. Fim da mudança

Início da mudançaUm compilador de XSLT (eXtensible Stylesheet Language for Transformations) é utilizado para a transformação se a folha de estilo não estiver incorporada na mensagem e o nível de cache do nó (propriedade do nó Nível de Cache da Folha de Estilo) for maior do que 0. Se o XSLT estiver armazenado em cache, isso fornece uma melhora de desempenho, pois o XSLT não é analisado toda vez que é utilizado.Fim da mudança

O nó XMLTransformation é representado no workbench pelo seguinte ícone:

 Ícone do nó XMLTransformation

Utilizando este nó em um fluxo de mensagens

Para obter um exemplo de como utilizar esse nó, considere duas organizações de notícias que trocam informações regularmente. Uma pode ser uma estação de televisão e outra um jornal. Embora as informações sejam semelhantes, o vocabulário utilizado pelas duas é diferente. Este nó pode transformar um formato em outro, aplicando as regras da folha de estilo especificada. Se você especificar a folha de estilo na mensagem (os dados XML ou Ambiente Local), o mesmo nó poderá desempenhar as duas transformações.

Consulte Amostra XMLT para obter detalhes adicionais sobre como utilizar o nó XMLTransformation.

Início da mudança

Folhas de Estilo Implementadas e Não Implementadas

As folhas de estilo podem ser utilizadas de duas maneiras com o nó XMLTransformation:
Folhas de estilo implementadas
As folhas de estilo implementadas são folhas de estilo importadas para um arquivo bar (broker archive) e implementadas em sistemas de destino. As folhas de estilo implementadas são gerenciadas pelo WebSphere Message Broker. A capacidade de implementar folhas de estilo desta forma é nova para a Versão 6.0. Uma folha de estilo principal é a folha de estilo raiz referida em um fluxo de mensagens. Por exemplo, uma referência a uma folha de estilo principal no espaço de trabalho do Eclipse, C:\\project1\a\b.xsl deve ser especificado como a/b.xsl (ou ./a/b.xsl). Uma folha de estilo principal pode fazer referência (incluir ou importar) suas folhas de estilo descendentes.
Folhas de estilo não implementadas
As folhas de estilo não implementadas são folhas de estilo que você armazena em um local onde o nó XMLTransformation pode acessá-las. As folhas de estilo não implementadas não são gerenciadas pelo WebSphere Message Broker.
Para obter mais informações, consulte Migração de Folhas de Estilo e Arquivos XML.

Implementação de Folhas de Estilo ou Arquivos XML Implementados

Início da mudançaAntes de configurar o nó XMLTransformation, é necessário entender como trabalhar com folhas de estilo. (Uma folha de estilo pode fazer referência a outro arquivo XML, assim como a uma folha de estilo.) Para utilizar as folhas de estilo implementadas ou arquivos XML, você deve executar as seguintes etapas:
  1. Certifique-se de que os arquivos tenham as extensões de nome de arquivo corretas: As folhas de estilo a serem implementadas devem ter como extensão de arquivo .xsl ou .xslt e os arquivos XML a serem implementados devem ter como extensão de arquivo .xml.
  2. Importe os arquivos para o espaço de trabalho do Eclipse: Todas as folhas de estilo e arquivos XML que serão implementados devem ser importados para um projeto do espaço de trabalho do Eclipse. As folhas de estilo descendentes ou arquivos XML dependentes de Local que serão implementados devem ser colocados na estrutura de diretórios correta em relação às suas folhas de estilo pai. Você não deve colocar no espaço de trabalho do Eclipse os descendentes dependentes de local que não deseja implementar.
  3. Início da mudançaCertifique-se de que todas as referências aos arquivos sejam relativas: Em geral, todas as referências a uma folha de estilo implementada devem ser relativas, independentemente de onde apareçam. Uma referência a uma folha de estilo do proprietário deve se tornar relativa para a raiz do projeto do espaço de trabalho do Eclipse relevante.

    A única exceção é, ao especificar uma folha de estilo principal como a propriedade Nome da Folha de Estilo em um nó XMLTransformation, você pode utilizar um caminho absoluto para a estrutura do diretório correto no espaço de trabalho do Eclipse. Se a folha de estilo principal for localizada, o sistema reconfigura a propriedade do nó automaticamente para o valor relativo correto. Também executa uma implementa automática da folha de estilo principal, juntamente com todas as duas folhas de estilo descendentes dependentes de local que estão disponíveis no projeto do espaço de trabalho do Eclipse relevante. Todas as referências às folhas de estilo descendentes dependentes de local (ou arquivos XML) de uma folha de estilo principal devem ser feitas em relação ao local das folhas de estilo pai. Por exemplo, se uma folha de estilo //project1/a/b.xsl fizer referência à folha de estilo //project1/a/c/d.xsl, a referência deve ser alterada para c/d.xsl (ou ./c/d.xsl).

    Fim da mudança
  4. Lide com folhas de estilo filhas não implementadas ou arquivos XML: As folhas de estilo podem fazer referência a outras folhas de estilo. Se você tiver uma folha de estilo filha referida de forma relativa (ou arquivo XML) que não deve ser implementada apesar de seu pai estar, certifique-se de que a folha de estilo filha seja colocada no local correto sob caminho de trabalho do intermediário/XSL/external (caminho de trabalho do intermediário/XML/external). Um intermediário associa automaticamente a árvore de armazenamento implementada do grupo de execução, caminho de trabalho do intermediário/XSL/external, e a árvore, caminho de trabalho do intermediário/XML/external, juntas. Isso significa, por exemplo, que o intermediário executa uma procura automaticamente no diretório caminho de trabalho do intermediário/XML/external/a/b para uma referência de documento (b/c.xml) na folha de estilo principal implementada a/style.xsl se b/c.xml não for localizado no armazenamento implementado do intermediário. As referências de caminhos relativos também devem ser utilizadas para arquivos que foram implementados mas que não estão disponíveis no espaço de trabalho.
  5. Início da mudançaImplemente os arquivos: Você precisa implementar manualmente somente as folhas de estilo ou os arquivos XML que não são coletados pelo sistema (as ferramentas fornecem avisos sobre estes arquivos). Se você clicar em Procurar para o nó ou fornecer o caminho completo do local da folha de estilo no espaço de trabalho do Eclipse, a folha de estilo é incluída automaticamente no arquivo bar.

    Para implementar manualmente, inclua os arquivos a serem implementados em um broker archive (consulte Incluindo Arquivos em um Broker Archive e Incluindo Palavras-chave nas Folhas de Estilo XSL) e implemente o broker archive.

    Início da mudançaPara cada grupo de execução que utiliza o nó XMLTransformation, é possível executar as seguintes ações:
    • Incluir a folha de estilo no diretório caminho de trabalho do intermediário/XSL/external no intermediário; não incluir a folha de estilo no arquivo bar.

      Se uma folha de estilo do diretório caminho de trabalho do intermediário/XSL/external compartilhar o mesmo caminho e nome com uma folha de estilo implementada, a folha de estilo implementada é utilizada.

    • Inclua a folha de estilo no arquivo bar e implemente o arquivo bar. Se vários arquivos bar incluírem o mesmo nome de folha de estilo, a folha de estilo do último arquivo bar implementado será utilizada.
    • Implemente a folha de estilo em seu próprio arquivo bar. Se os arquivos bar utilizam os nós XMLTransformation, mas não incluírem a folha de estilo, o Message Brokers Toolkit emite as mensagens de aviso.
    Fim da mudança
    Fim da mudança
Fim da mudança
Fim da mudança

Configurando o Nó XMLTransformation

Quando tiver colocado uma instância do nó XMLTransformation em um fluxo de mensagens, será possível configurá-lo. Clique com o botão direito do mouse na visualização do editor clique em Propriedades. As propriedades básicas do nó são exibidas.

Todas as propriedades obrigatórias, para as quais é necessário inserir um valor (aquelas que não possuem um valor padrão definido) são marcadas com um asterisco no diálogo das propriedades.

Configure o nó XMLTransformation da seguinte forma:

  1. Selecione valores para as propriedades Prioridade de Seleção Incorporada do XML, Prioridade de Seleção do Ambiente de Mensagens e Prioridade de Seleção de Atributos do Nó do Intermediário. Os valores definidos determinam a ordem em que nas localizações alternativas são pesquisadas informações sobre página de estilo. A definição de mais alta prioridade é 1. A ordem padrão é:
    1. Início da mudançaPrioridade de Seleção Incorporada XML, que possui um valor padrão igual a 1. O nó procura os dados XML da mensagem para obter as informações de local da página de estilo. Por exemplo, os dados XML podem conter:
      <?xml-stylesheet type="text/xsl" href="foo.xsl"?>
      Fim da mudança
    2. Prioridade de Seleção de Ambiente de Mensagens, que possui um valor padrão igual a 2. O nó pesquisa no Ambiente Local associado à mensagem atual informações da página de estilo armazenadas em um elemento denominado ComIbmXslXmltStylesheetname.

      Como este nó estava disponível em um SupportPac para Versão 2.1 e o elemento ComIbmXslMqsiStylesheetname era utilizado para o nome da folha de estilo, o nó atual verificará os dois elementos. Se ambos estiverem presentes, o valor em ComIbmXslXmltStylesheetname terá precedência.

    3. Prioridade de Seleção de Atributos do Nó do Intermediário, que, assim, possui um valor padrão 3. O nó utiliza as propriedades do nó Nome da Folha de Estilo e Diretório da Folha de Estilo para determinar os valores corretos.

    Você pode definir mais de uma propriedade como o mesmo valor, embora isso não seja recomendado. Se definir, a ordem de prioridade definida pelo nó será a ordem padrão indicada acima.

    Se você configurar um valor de ignorar, o nó não procurará o local correspondente para a identificação da folha de estilo. Se você configurar todas as três propriedades a serem ignoradas, será gerado um erro de tempo de execução.

  2. Se desejar especificar uma folha de estilo não implementada utilizando as propriedades do nó, digite o valor requerido para Nome da Folha de Estilo. Este valor será ignorado se as informações sobre a página de estilo forem pesquisadas e localizadas em uma localização preferida (determinada pelos valores de prioridade de seleção definidos).

    Se desejar especificar uma folha de estilo do proprietário, haverá duas maneiras de fazer isso:
    1. Utilizando o botão Procurar junto ao campo da propriedade Nome da Folha de Estilo a partir do espaço de trabalho. A folha de estilo do proprietário identificada e todas as suas folhas de estilo descendentes referidas relativamente serão automaticamente incluídas no arquivo bar durante a inclusão de um fluxo de mensagens em um arquivo .bar (desde que elas e as folhas de estilo-pai estejam disponíveis).
    2. Para a identificação de uma folha de estilo já implementada ou que será implementada, apenas a propriedade Nome da Folha de Estilo poderá ser utilizada e a propriedade Diretório da Folha de Estilo deve ficar vazia.
  3. Se a identificação da página de estilo for totalmente qualificada, Diretório da Página de Estilo será ignorado; se não for, o valor que você definir nesta propriedade será incluído no início da especificação, independentemente de onde ele estiver localizado.
  4. Início da mudançaEm Nível de Cache da Página de Estilo, especifique o número de páginas de estilo compiladas ou analisadas que estão armazenadas nesta instância do nó. O valor padrão é 5. O cache da página de estilo é retido durante a existência do nó. Ele é limpo quando o nó é excluído do fluxo ou quando o fluxo é excluído ou quando o grupo de exceção é parado.

    Se você alterar a folha de estilo armazenada em cache (implementando novamente ou substituindo o arquivo no sistema de arquivos) o nó XMLTransformation que está contendo o cache substitui a versão armazenada em cache pela versão modificada (mais recente) antes de uma nova mensagem ser processada. No entanto, se você estiver alterando várias folhas de estilo, para os fluxos de mensagens relevantes antes de fazer quaisquer alterações. Se você não parar os fluxos de mensagens relevantes antes de fazer as alterações necessárias, a ordem das alterações não podem ser garantidas executando os fluxos de mensagens e pode haver incompatibilidade entre as folhas de estilo que foram alteradas. É possível utilizar o comando mqsireload para recarregar uma folha de estilo, mas o comando não evita incompatibilidade.

    Fim da mudança
  5. Selecione Conjunto de Caracteres de Saída no navegador do diálogo de propriedades, se desejar especificar a ordem na qual o nó pesquisa localizações válidas para localizar o conjunto de caracteres a ser utilizado para a mensagem de saída. A definição de mais alta prioridade é 1. A ordem padrão é:
    1. Prioridade de Seleção de Ambiente de Mensagens, que, portanto, possui um valor padrão de 1. O nó pesquisa no Ambiente Local associado à mensagem atual informações do conjunto de caracteres armazenadas em um elemento denominado ComIbmXslXmltOutputcharset.

      Por exemplo, para codificar a saída da transformação como UTF-8, insira o valor 1208 como uma cadeia neste elemento.

      Como esse nó estava disponível em um SupportPac para a Versão 2.1 e o elemento ComIbmXslMqsiOutputcharset foi utilizado para o conjunto de caracteres de saída, o nó atual verifica os dois elementos. Se ambos estiverem presentes, o valor em ComIbmXslXmltOutputcharset terá precedência.

    2. Prioridade de Seleção de Atributos do Nó do Intermediário, que, assim, possui um valor padrão 2. O nó utiliza a propriedade Conjunto de Caracteres de Saída para determinar o valor correto.

      Se você definir um valor para Conjunto de Caracteres de Saída, o valor que você digitar deve ser numérico. Por exemplo, para codificar a saída da transformação como UTF-16, insira 1200.

    Você pode definir mais de uma propriedade como o mesmo valor, embora isso não seja recomendado. Se definir, a ordem de prioridade definida pelo nó será a ordem padrão indicada acima.

    Se você definir o valor 0, o nó não pesquisará o local correspondente para a identificação do conjunto de caracteres.

    Se o nó não puder determinar o conjunto de caracteres de saída dessas duas origens, porque nenhum valor foi definido ou porque as prioridades de seleção estão definidas como 0, será utilizado o valor padrão 1208 (UTF8). (A especificação XSL indica que o conjunto de caracteres de saída pode ser especificado na folha de estilo; no entanto, o nó XMLTransformation ignorará este valor.)

  6. Selecione Rastreio de Detalhes no navegador do diálogo de propriedades para rastrear as ações do nó XMLTransformation. O valor padrão para a propriedade Rastreio de Detalhes é Desativado. Para ativar o rastreio, defina a propriedade para On.

    As informações de rastreio são gravadas para um arquivo de rastreio XMLTTrace.log:

    • Nos sistemas z/OS, o arquivo está localizado em <broker_dir>/output, onde <broker_dir> é o diretório no qual o intermediário foi instalado.
    • Nos sistemas Windows, o arquivo está localizado em <caminho de trabalho do intermediário>\common\log.
    • Nos sistemas UNIX, o arquivo está localizado em <caminho de trabalho do intermediário>\common\log.

    Se você definir o rastreio detalhado para um nó XMLTransformation, ele será ativado para todos os nós no grupo de execução.

    Nota: Esta propriedade agora está reprovada. Qualquer rastreio relevante agora vai para o rastreio do usuário, desde que o rastreio de depuração do usuário esteja ativado. A configuração de Rastreio de Detalhes no nó XMLTransformation não afeta nenhum rastreio do usuário.
  7. Selecione Descrição no navegador de diálogo de propriedades para inserir uma descrição breve, uma descrição longa ou ambas.
  8. Clique em Aplicar para fazer as alterações no nó XMLTransformation sem fechar o diálogo de propriedades. Clique em OK para aplicar as alterações e fechar o diálogo de propriedades.

    Clique em Cancelar para fechar o diálogo e descartar todas as alterações feitas nas propriedades.

  9. Início da mudançaPare e reinicie o grupo de execução.Fim da mudança
Se estiver lidando com mensagens XML grandes e receber um erro de 'falta de memória', poderá utilizar o comando mqsireportproperties para ver o valor atual do tamanho de heap Java para o mecanismo XSLT e o comando mqsichangeproperties para aumentá-lo:
mqsireportproperties brokerName -e executionGroupLabel
                                 -o ComIbmJVMManager -n jvmMaxHeapSize
mqsichangeproperties brokerName -e executionGroupLabel
                                 -o ComIbmJVMManager -n jvmMaxHeapSize -v newSize
substituindo brokerName, executionGroupLabel e newSize pelos valores apropriados.

Início da mudançaO valor escolhido para newSize depende da quantidade de memória física que seu computador tem e quanto está utilizando Java. Um valor no intervalo de 512 MB (536870912) a 1 GB (1073741824) é sugerido. Fim da mudança

Terminais e Propriedades

Os terminais do nó XMLTransformation estão descritos na seguinte tabela.

Terminal Descrição
Entrada O terminal de entrada que aceita a mensagem para processamento pelo nó.
Defeito O terminal de saída para o qual a mensagem original será roteada se for detectado um erro durante a transformação.
Saída O terminal de saída para o qual a mensagem transformada com êxito será roteada.

As tabelas a seguir descrevem as propriedades do nó; a coluna com cabeçalho M indica se a propriedade é obrigatória (marcado com um asterisco no diálogo de propriedades caso seja necessário digitar um valor quando nenhum padrão for definido), a coluna com cabeçalho C indica se a propriedade é configurável (você poderá alterar o valor quando incluir o fluxo de mensagens no arquivo bar para implementá-lo).

As propriedades da Página de Estilo do nó XMLTransformation são descritas na tabela a seguir.

Propriedade M C Padrão Descrição
Prioridade de Seleção Incorporada XML Sim Não 1 O valor de prioridade para pesquisar informações sobre localização nos dados XML.
Prioridade de Seleção de Ambientes de Mensagens Sim Não 2 O valor de prioridade para pesquisar informações sobre localização de página de estilo na pasta Ambiente Local da mensagem atual.
Prioridade de Seleção de Atributos do Nó do Intermediário Sim Não 3 O valor de prioridade para pesquisar informações sobre localização de página de estilo como uma propriedade do nó
Nome da Página de Estilo Não Sim   O nome da folha de estilo, utilizado se a especificação da folha de estilo for procurada nas propriedades do nó.
Diretório da Página de Estilo Não Sim   O caminho em que a folha de estilo está localizada. Utilizado por todos os métodos de localização.
Nível de Cache da Página de Estilo Não Não 5 O número de páginas de estilo compiladas ou analisadas que estão armazenadas nesta instância do nó.

As propriedades do Conjunto de Caracteres de Saída do nó XMLTransformation são descritas na tabela a seguir.

Propriedade M C Padrão Descrição
Prioridade de Seleção de Ambientes de Mensagens Sim Não 1 O valor de prioridade para pesquisar o ID do Conjunto de Caracteres de Saída na pasta Ambiente Local da mensagem atual.
Prioridade de Seleção de Atributos do Nó do Intermediário Sim Não 2 O valor de prioridade para pesquisar o ID do Conjunto de Caracteres de Saída como uma propriedade do nó.
Conjunto de Caracteres de Saída Não Não   O valor numérico do Conjunto de Caracteres de Saída

As propriedades de Rastreio de Detalhes do nó XMLTransformation são descritas na tabela a seguir.

Propriedade M C Padrão Descrição
Definição de Rastreio Sim Não Desativado Determina se o rastreio está ativado ou desativado. Se o rastreio estiver ativado, o nível de rastreio inferior será registrado em um arquivo.

As propriedades de Descrição do nó XMLTransformation são descritas na tabela a seguir.

Propriedade M C Padrão Descrição
Descrição Breve Não Não   Uma breve descrição do nó.
Descrição Longa Não Não   Texto que descreve a finalidade do nó no fluxo de mensagens.

Se o prólogo do corpo da mensagem de entrada contiver uma declaração de codificação XML, o nó XMLTransformation ignorará essa codificação e sempre utilizará CodedCharSetId na mensagem como pasta de propriedade de mensagem para decodificar a mensagem.

Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac12490_