XMLTransformation

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).

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

Propósito

Você pode especificar o local da folha de estilo a ser aplicada a essa transformação de três maneiras:

  • Utilize o conteúdo dos dados XML da própria mensagem para transformá-la de acordo com uma folha de estilo definida pela própria mensagem.
  • Configurar um valor na pasta LocalEnvironment. É necessário configurar este valor em um nó que preceda o nó XMLTransformation (por exemplo, um nó Compute). Portanto, é possível utilizar várias entradas para determinar qual folha de estilo utilizar para essa mensagem, como o conteúdo dos dados da mensagem ou um valor em um banco de dados.
  • Utilize as propriedades do nó para assegurar-se de que a transformação definida por essa única folha de estilo seja aplicada a cada mensagem processada por esse nó.

Será utilizado um compilador XSLT (Extensible Stylesheet Language for Transformations) 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 zero. Se o XSLT for armazenado em cache, o desempenho será melhorado porque o XSLT não será analisado toda vez que for utilizado.

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

O nó XMLTransformation está contido no repositório Transformação da paleta e é representado no ambiente de trabalho 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.

Examine a seguinte amostra para obter detalhes adicionais sobre como utilizar o nó XMLTransformation: Você pode visualizar amostras apenas quando utilizar o centro de informações integrado ao Message Brokers Toolkit.

Observe as seguintes considerações se a entrada para o nó XMLTransformation for gerada a partir do analisador XMLNSC ou do analisador MRM. O analisador XMLNSC descartará determinadas informações em documentos XML, como instruções de processamento e comentários, se você não configurar as propriedades para manter estas informações em um nó precedente. Para garantir que o nó XMLTransformation transforme a mensagem corretamente, defina as propriedades Reter Conteúdo Misto, Reter Comentários e Reter Instruções de Processamento corretamente no nó precedente (por exemplo, um nó MQInput). O analisador MRM também descarta estas informações, mas não é possível manter informações para este analisador, portanto, evite utilizar o domínio MRM se tais informações forem vitais para sua transformação.

Folhas de Estilo Implementadas e Não Implementadas

Você pode utilizar páginas de estilo de duas maneiras diferentes 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 páginas de estilo implementadas são gerenciadas pelo intermediário. Uma folha de estilo do proprietário (principal style sheet) é a folha de estilo raiz referida em um fluxo de mensagens; por exemplo, uma referência a uma folha de estilo do proprietário no espaço de trabalho do Eclipse, C:\\project1\a\b.xsl, deve ser especificada 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
Páginas de estilo não implementadas são páginas de estilo armazenadas em um local no qual o nó XMLTransformation pode acessá-las. As páginas de não implementadas não são gerenciadas pelo intermediário.
Para obter mais informações, consulte Migrando Folhas de Estilo e Arquivos XML.

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

Antes de configurar o nó XMLTransformation, é necessário entender como trabalhar com folhas de estilo. Uma folha de estilo pode se referir a um outro arquivo ou folha de estilo XML. Para utilizar folhas de estilo implementadas ou arquivos XML:
  1. Certifique-se de que os arquivos tenham as extensões de nome de arquivo corretas.

    As folhas de estilo que serão implementadas devem ter .xsl ou .xslt como extensão de arquivo, enquanto os arquivos XML a serem implementados devem ter .xml como extensão de arquivo.

  2. Importe os arquivos no espaço de trabalho do Eclipse.

    Importe para um projeto do espaço de trabalho do Eclipse todas as folhas de estilo e arquivos XML que devem ser implementados. Coloque folhas de estilo descendentes, dependentes de local, ou arquivos XML que serão implementados, na estrutura de diretório correta, relativa a suas folhas de estilo pai. Não coloque no espaço de trabalho do Eclipse os descendentes dependentes de local que você não deseja implementar.

  3. Certifique-se de que todas as referências aos arquivos sejam relativas.

    Normalmente, todas as referências a uma folha de estilo implementada devem ser relativas, independentemente de onde elas forem exibidas. Uma referência a uma folha de estilo principal deve se tornar relativa para a raiz do projeto do espaço de trabalho do Eclipse relevante.

    A única exceção é quando você especifica uma folha de estilo principal como a propriedade Nome da Folha de Estilo em um nó XMLTransformation; você pode utilizar um caminho absoluto que indique a estrutura de diretório correta 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.

    O sistema também desempenha uma implementação automática da folha de estilo principal, juntamente com todas as suas 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 a folha de estilo //project1/a/b.xsl fizer referência à folha de estilo //project1/a/c/d.xsl, a referência deverá ser alterada para c/d.xsl (ou ./c/d.xsl).

  4. Identifique folhas de estilo ou arquivos XML filho não implementados.

    Início da mudançaFolhas de estilo podem se referir a outras folhas de estilo. Se você tiver uma folha de estilo filha (ou arquivo XML), com referência relativa, que não será implementada, ainda que seu pai seja, certifique-se de que a folha de estilo filha seja colocada no local correto em workpath/XSL/external (workpath/XML/external), em que workpath é o caminho completo para o diretório de trabalho do intermediário. É possível utilizar a variável de ambiente MQSI_WORKPATH para localizar o local do caminho de trabalho em seu sistema; por exemplo, em sistemas em sistemasWindows, o c aminho de trabalho padrão é MQSI_WORKPATH=C:\Documents and Settings\All Users\Application Data\IBM\MQSI.Fim da mudança

    Um intermediário associa automaticamente a árvore de armazenamento implementada do grupo de execução, caminho de trabalho/XSL/external, e a árvore caminho de trabalho/XML/external, juntas. Portanto, se por exemplo, o documento b/c.xml não for localizado no armazenamento implementado do intermediário, o intermediário procurará automaticamente uma referência a ele no diretório workpath/XML/external/a/b na folha de estilo principal implementada a/style.xsl. 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. Implemente os arquivos.

    Implemente manualmente apenas folhas de estilo ou arquivos XML que não são coletados pelo sistema (o Message Brokers Toolkit fornece avisos sobre esses arquivos). Se você clicar em Navegar 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 archive do intermediário. Para obter informações adicionais, consulte o Incluindo Arquivos em um Broker Archive e o Incluindo Palavras-chave em Folhas de Estilo XSL.

    Para cada grupo de execução que utiliza o nó XMLTransformation, desempenhe uma das seguintes ações:
    • Inclua a folha de estilo no diretório caminho de trabalho/XSL/external no intermediário; não inclua a folha de estilo no arquivo BAR.

      Se uma folha de estilo no diretório caminho de trabalho/XSL/external compartilhar o mesmo caminho e nome com uma folha de estilo implementada, a folha de estilo implementada será 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 incluem a folha de estilo, o Message Brokers Toolkit emite mensagens de aviso.

Configurando o Nó XMLTransformation

Quando tiver colocado uma instância do nó XMLTransformation em um fluxo de mensagens, você poderá configurá-lo; consulte Configurando um Nó do Fluxo de Mensagens. As propriedades do nó são exibidas na visualização Propriedades. Para exibir as propriedades do nó do diálogo Propriedades, clique com o botão direito do mouse no nó e clique em Propriedades. (Se você der um clique duplo no nó XMLTransformation, abrirá a caixa de diálogo Seleção de XSL).

Todas as propriedades obrigatórias para as quais é necessário digitar um valor (aquelas que não têm um valor padrão definido) são marcadas com um asterisco.

Configure o nó XMLTransformation:

  1. Opcional: Na guia Descrição , digite uma Descrição breve, uma Descrição longa, ou ambas. Você também pode renomear o nó nessa guia.
  2. Na guia Folha de Estilo, para especificar uma folha de estilo utilizando as propriedades do nó, digite o valor exigido para Nome da Folha de Estilo. Este valor será ignorado se as informações da folha de estilo forem localizadas em um local preferencial (determinado pelos valores de prioridade de seleção configurados).
    Especifique uma folha de estilo principal utilizando um dos seguintes métodos:
    • Clique em Procurar próximo a Nome da Folha de Estilo. A folha de estilo principal identificada e todas as suas folhas de estilo descendentes referenciadas são incluídas automaticamente no arquivo BAR quando você inclui um fluxo de mensagens em um arquivo BAR (se elas e suas folhas de estilo pai estiverem disponíveis).
    • Para identificar uma folha de estilo já implementada, ou pronto para ser implementada, utilize a propriedade Nome da Folha de Estilo e deixe em branco a propriedade Diretório da Folha de Estilo.
    • No editor Fluxo de Mensagens, arraste o arquivo .xslt para o nó XMLTransformation; o Nome da Folha de Estilo é definido automaticamente.
  3. Na subguia Avançado:
    1. Se a identificação da folha de estilo estiver totalmente qualificada, o Diretório da Folha de Estilo será ignorado; caso contrário, o valor definido nessa propriedade será incluído no início da especificação, independentemente de onde ela estiver localizada.
    2. Em Nível de Cache da Folha de Estilo, especifique o número de folhas de estilo compiladas ou analisadas que estão armazenadas nessa instância do nó; o valor padrão é 5. O cache da folha de estilo é mantido durante a existência do nó e será limpo quando o nó for excluído do fluxo, quando o fluxo for excluído ou quando o grupo de execução for parado.

      Se você alterar uma folha de estilo em cache (reimplementando ou substituindo o arquivo no sistema de arquivos), o nó XMLTransformation que está mantendo o cache substituirá a versão em cache pela versão modificada (mais recente) antes do processamento de uma nova mensagem. 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, a ordem das alterações não poderá ser garantida executando os fluxos de mensagens e poderá causar incompatibilidade entre as folhas de estilo alteradas. Utilize o comando mqsireload para recarregar uma folha de estilo; entretanto, esse comando não evita incompatibilidade.

    3. Selecione os valores para as propriedades Prioridade de seleção de folha de estilo incorporada XML, Prioridade de seleção do ambiente de mensagem e Prioridade de seleção de atributos do nó do intermediário. Os valores configurados determinam a ordem na qual em locais alternativos são procuradas informações da folha de estilo. A definição de mais alta prioridade é 1. A ordem padrão é:
      1. Prioridade de seleção de folha de estilo incorporada XML, que tem um valor padrão de 1. O nó busca osdados XML da mensagem por informações do local da folha de estilo. Por exemplo, os dados XML podem conter:
        <?xml-stylesheet type="text/xsl" href="foo.xsl"?>
      2. Prioridade de seleção de ambiente da mensagem, que poddui um valor padrão de 2. O nó procura no LocalEnvironment associado à mensagem atual as informações da folha de estilo que estão armazenadas em um elemento chamado ComIbmXslXmltStylesheetname.

        Este nó estava disponível em um SupportPac para Versão 2.1, e o elemento ComIbmXslMqsiStylesheetname foi utilizado para o nome da folha de estilo, portanto, o nó atual verifica 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 tem um valor padrão de 3. O nó utilize as propriedades Nome da Folha de Estilo e Diretório da Folha de Estilo para determinar os valores corretos.

      Você pode definir mais de uma propriedade para o mesmo valor, mas se fizer isso, a ordem de prioridade definida pelo nó será a ordem padrão indicada anteriormente.

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

  4. Na guia Conjunto de Caracteres de Saída, especifique a ordem na qual o nó procura locais válidos 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 da mensagem, cujo valor padrão é 1. O nó procura no LocalEnvironment associado à mensagem atual as informações do conjunto de caracteres que estão armazenadas em um elemento denominado ComIbmXslXmltOutputcharset; por exemplo, para codificar a saída da transformação como UTF-8, digite o valor 1208 como cadeia nesse elemento.

      Este nó estava disponível em um SupportPac para Versão 2.1 e o elemento ComIbmXslMqsiOutputcharset foi utilizado para o conjunto de caracteres de saída, portanto, 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 tem um valor padrão de 2. O nó utiliza a propriedade Conjunto de Caracteres de Saída para determinar o valor correto.

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

    Você pode definir mais de uma propriedade para o mesmo valor, mas se fizer isso, a ordem de prioridade definida pelo nó será a ordem padrão indicada anteriormente.

    Se você definir um valor zero, o nó não procurará no local correspondente a identificação do conjunto de caracteres.

    Se o nó não puder determinar o conjunto de caracteres de saída de uma dessas duas origens, porque nenhum valor foi definido ou porque as prioridades de seleção estão definidas como zero, será utilizado o valor padrão 1208 (UTF-8). (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 ignora este valor.)

  5. Na guia Rastreio de Detalhes, configure a propriedade Configuração de Rastreio para rastrear as ações do nó XMLTransformation. O valor padrão é Off. Para ativar o rastreio, defina a propriedade para On.

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

    • z/OS platform Em sistemas z/OS, o arquivo está localizado em install_dir/output, em que install_dir é o diretódio no qual o intermediário foi instalado.
    • Windows platform Em sistemas Windows, se você configurar o caminho de trabalho utilizando o parâmetro -w do comando mqsicreatebroker, o local é workpath\log. Se você não especificou o caminho de trabalho do intermediário, o local será C:\Documents and Settings\All Users\Application Data\IBM\MQSI\common\log.
    • Linux platformUNIX platform Em sistemas Linux e UNIX, o arquivo está localizado em /var/mqsi/common/log.

    Se você definir Configuração de Rastreio para Ativado para um nó XMLTransformation, ela será ativada para todos os nós no grupo de execução.

    Esta propriedade foi reprovada. Em vez disso, inicie o rastreio do usuário. O rastreio do usuário contém as mesmas informações de rastreio XML. Se você configurou Configuração de rastreio no nó XMLTransformation, não afetará o rastreio do usuário.

Se você tiver mensagens XML grandes e receber um erro sem memória, utilize o comando mqsireportproperties para ver o valor atual do tamanho de Heap Java para o mecanismo XSLT:
mqsireportproperties brokerName -e executionGroupLabel
                                 -o ComIbmJVMManager -n jvmMaxHeapSize
Utilize o comando mqsichangeproperties para aumentar o tamanho de Heap Java:
mqsichangeproperties brokerName -e executionGroupLabel
                                 -o ComIbmJVMManager -n jvmMaxHeapSize -v newSize
Nos exemplos anteriores, substitua brokerName, executionGroupLabel e newSize pelos valores apropriados.

O valor escolhido para newSize depende da quantidade de memória física de seu computador e da quantidade de Java que está sendo utilizada. Um valor no intervalo de 512 MB (536870912) a 1 GB (1073741824) em geral é suficiente.

Terminais e Propriedades

Os terminais do nó XMLTransformation são descritos na tabela a seguir.

Terminal Descrição
In O terminal de entrada que aceita a mensagem para processamento pelo nó.
Failure O terminal de saída para o qual a mensagem original será roteada se for detectado um erro durante a transformação.
Out 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 (marcada com um asterisco 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 ao arquivo BAR para implementá-lo).

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

Propriedade M C Padrão Descrição
Nome do Nó Não Não O tipo de nó O nome do nó.
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.

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

Propriedade M C Padrão Descrição
Nome da folha 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ó.

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

Propriedade M C Padrão Descrição
Diretório da folha de estilo Não Sim   O caminho em que a folha de estilo está localizada. Esse caminho é utilizado por todos os métodos de local.
Nível de cache da folha de estilo Não Não 5 O número de folhas de estilo compiladas ou analisadas que estão armazenadas nessa instância do nó.

Insira um número inteiro positivo entre zero (0) e 100. O valor padrão é 5. Se você configurar esta propriedade a o utro caractere que não um número inteiro positivo, uma mensagem de erro de exceção na configuração do fluxo é emitida.

Se configurar esta propriedade para zero (0), nenhuma folha de estilo será armazenada no cache, e as folhas de estilo são interpretadas em vez de compiladas.

Prioridade de seleção de folha de estilo incorporada XML Sim Não 1 O valor de prioridade para procurar informações de local de folha de estilo nos dados XML.
Prioridade de seleção do ambiente de mensagem Sim Não 2 O valor de prioridade para procurar informações de local de folha de estilo na pasta LocalEnvironment da mensagem atual.
Prioridade de seleção de atributo de nó intermediário Sim Não 3 O valor de prioridade para procurar informações de local de folha de estilo como uma propriedade do nó

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

Propriedade M C Padrão Descrição
Conjunto de caracteres de saída Não Não   O valor numérico do Conjunto de Caracteres de Saída
Prioridade de seleção do ambiente de mensagem 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 atributo de nó 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ó.

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

Propriedade M C Padrão Descrição
Configuração de rastreio Sim Não Desativado Início da mudançaEsta propriedade foi reprovada. Em vez disso, inicie o rastreio do usuário. O rastreio do usuário contém as mesmas informações de rastreio XSL. Se você configurar esta propriedade, não afetará o rastreio do usuário.

Em versões anteriores do WebSphere Message Broker, esta ropriedade controla se o rastreio está ativado ou desativado.. Se o rastreio estiver ativado, o nível de rastreio inferior será registrado em um arquivo.

Fim da mudança
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:11:48

ac12490_