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:
Você pode especificar o local da folha de estilo a ser aplicada a essa transformação de três maneiras:
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:
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.
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.
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.
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.
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).
Folhas 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.
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.
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.
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.
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:
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.
<?xml-stylesheet type="text/xsl" href="foo.xsl"?>
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.
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.
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.
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.)
As informações de rastreio são gravadas para um arquivo de rastreio XMLTTrace.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.
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.
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 | ![]() 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. ![]() |