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. Esse comportamento está disponível somente para arquivos XSL e XML localizados em um projeto do Fluxo de Mensagens.
  3. Você pode definir um valor na pasta Ambiente Local associada à mensagem. Isto fornece uma opção dinâmica de folha de estilo, porque é necessário configurar este valor (em um nó Compute) dentro do fluxo de mensagens, após o recebimento da mensagem. 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.

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ó (Nível de Cache da Folha de Estilo da propriedade do nó) for maior que 0.

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.

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 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. Prioridade de Seleção Incorporada XML, que, portanto, possui um valor padrão de 1. O nó pesquisa os dados XML para obter as informações de localização da página de estilo. Por exemplo, os dados XML podem conter:
      <xml-stylesheet
      type="text/xsl"href="foo.xsl">
    2. Prioridade de Seleção de Ambiente de Mensagens, que, portanto, possui um valor padrão de 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. Em 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ê modificar uma folha de estilo, a versão modificada (mais recente) será utilizada em vez da versão em cache. Se você deseja atualizar o cache, utilize o comando mqsireload.
  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:

    • Em sistemas z/OS, o arquivo está localizado em <diretório_do_intermediário>/output, em que <diretório_do_intermediário> é o diretório no qual você instalou o intermediário
    • Em sistemas Windows, o arquivo está localizado em <caminho de trabalho do intermediário>\common\log.
    • Em 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.

Ao tratar com mensagens XML grandes e receber um erro de memória insuficiente, é possível utilizar o comando mqsichangeproperties para aumentar o tamanho de heap do Java para o mecanismo XSLT. Por exemplo, utilizando o seguinte código:
mqsichangeproperties
brokerName -e executionGroupLabel -o ComIbmJVMManager -n
jvmMaxHeapSize -v newSize
substituindo brokerName, executionGroupLabel e newSize pelos valores apropriados.

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.

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

Para utilizar folhas de estilo ou arquivos XML implementados, faça o seguinte:
  1. Certificar-se de que os arquivos tenham as extensões de nome de arquivo corretas: As folhas de estilo a serem implementadas devem ter .xsl ou .xslt como sua extensão de arquivo e os arquivos XML a serem implementados devem ter .xml como sua extensão de arquivo.
  2. Importar 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. Não é necessário colocar os descendentes dependentes de Local do espaço de trabalho do Eclipse que você não deseja implementar.
  3. Certificar-se de que todas as referências aos arquivos sejam relativas: Em geral, todas as referências a uma folha de estilo do proprietário que podem aparecer em um ambiente local do fluxo, em um documento XML de entrada, na propriedade Nome da Folha de Estilo do nó XMLTransformation ou em uma folha de estilo-pai devem se tornar relativas. 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. 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). A única exceção é que, quando você especifica uma folha de estilo do proprietário como a propriedade Nome da Folha de Estilo em um nó XMLTransformation, também pode utilizar um caminho absoluto que aponte para a estrutura de diretórios correta no espaço de trabalho do Eclipse. Se o estilo do proprietário for localizado, o sistema automaticamente reconfigurará a propriedade do nó para o valor relativo correto (e desempenhará uma implementação automática da folha de estilo do proprietário, junto 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 de local (ou arquivo XML) de um estilo de proprietário devem se tornar relativas para o local de suas 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. Lidar com folhas de estilo-filhas ou arquivos XML não implementados: Se você tiver uma folha de estilo-filha referida relativamente (ou arquivo XML) que não será implementada já que seu pai está implementado, certifique-se de que ela seja colocada no local correto, em /XSL/external (/XML/external). Um intermediário associa automaticamente a árvore de armazenamento implementada pelo grupo de execução, /XSL/external e a árvore /XML/external juntas. Isto significa, por exemplo, que o intermediário desempenha automaticamente uma procura no diretório /XML/external/a/b por uma referência de documento (b/c.xml) na folha de estilo do proprietário 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. Implementar os arquivos: Você precisa apenas implementar manualmente folhas de estilo ou arquivos XML que não são coletados pelo sistema (as ferramentas fornecem avisos sobre estes arquivos). Para implementar manualmente, inclua os arquivos a serem implementados em um archive do intermediário (consulte Incluindo Arquivos em um Broker Archive e Incluindo Palavras-chave nas Folhas de Estilo XSL) e implemente o archive do intermediário. É necessário implementar uma folha de estilo ou arquivo XML apenas uma vez para todos os fluxos de mensagens que pertencem ao mesmo grupo de execução e pelo menos uma vez para cada grupo de execução. Não é necessário implementar as folhas de estilo ou arquivos XML no mesmo arquivo .bar que contém os fluxos que se referem a eles. Além disso, as folhas de estilo e arquivos XML em um arquivo .bar não precisam ser referidos por nenhum fluxo. No entanto, quando um fluxo é salvo em um arquivo .bar, serão fornecidos avisos se nenhuma das folhas de estilo-filhas ou arquivos XML forem localizados no arquivo .bar. É de sua responsabilidade assegurar que estas folhas de estilo-filhas ou arquivos XML estejam disponíveis no intermediário. Um intermediário não reconhece projetos Eclipse. Portanto, uma folha de estilo implementada que pertence a um projeto pode ser sobrescrita por outra, se compartilharem o mesmo caminho de diretório e nome de arquivo, mesmo que pertençam a projetos diferentes. Uma implementação sobrescreve, sem aviso, todas as versões antigas existentes dos arquivos que estão sendo implementados. Isto também se aplica automaticamente a folhas de estilo implementadas.
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2005 Última Atualização: 04/11/2005
ac12490_