Esta é a documentação do Apigee Edge.
Acesse
Documentação da Apigee X. informações

O que
A política de transformação XSL aplica transformações da linguagem de folha de estilo extensível (XSLT, na sigla em inglês) a mensagens XML, permitindo transformá-las do XML para outro formato, como XML, HTML ou texto simples. Geralmente, a política é usada para integrar aplicativos compatíveis com XML, mas que exigem formatos XML diferentes para os mesmos dados.
Amostras
Os exemplos a seguir mostram todos os recursos em um fluxo de transformação XSL.
Política de XSL ->
<XSL name="TransformXML"> <ResourceURL>xsl://my_transform.xsl</ResourceURL> <Source>request</Source> </XSL>
Política simples de XSL. Vá para o próximo exemplo para ver a folha de estilo GQL referenciada na
política (my_transform.xsl
). O elemento <Source>
é importante.
Por exemplo, se o XML que você quer transformar estiver na resposta, a transformação não
ocorrerá, a menos que você defina a Origem como response
(e a política estará anexada ao
fluxo de resposta). Mas, nesse caso, o XML a ser transformado está na solicitação.
Folha de estilo GQL ->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="text"/> <xsl:variable name="newline"> <xsl:text> </xsl:text> </xsl:variable> <xsl:template match="/"> <xsl:text><Life></xsl:text> <xsl:value-of select="$newline"/> <xsl:text>Here are the odd-numbered items from the list:</xsl:text> <xsl:value-of select="$newline"/> <xsl:for-each select="list/listitem"> <xsl:if test="(position() mod 2) = 1"> <xsl:number format="1. "/> <xsl:value-of select="."/> <xsl:value-of select="$newline"/> </xsl:if> </xsl:for-each> <xsl:text></Life></xsl:text> </xsl:template> </xsl:stylesheet>
A folha de estilo my_transform.xsl
referenciada na política. Acesse a próxima amostra
para ver um exemplo de uma mensagem XML recebida.
Mensagem ->
<?xml version="1.0"?> <list> <title>A few of my favorite albums</title> <listitem>A Love Supreme</listitem> <listitem>Beat Crazy</listitem> <listitem>Here Come the Warm Jets</listitem> <listitem>Kind of Blue</listitem> <listitem>London Calling</listitem> <listitem>Remain in Light</listitem> <listitem>The Joshua Tree</listitem> <listitem>The Indestructible Beat of Soweto</listitem> </list>
Exemplo de mensagem na solicitação (indicada no elemento <Source>request</Source>
da política na primeira amostra).
Mensagem transformada
<Life> Here are the odd-numbered items from the list: 1. A Love Supreme 3. Here Come the Warm Jets 5. London Calling 7. The Joshua Tree </Life>
A mensagem transformada após a folha de estilo XSLT dessas amostras é aplicada à mensagem XML.
Referência de elemento
Configure uma política de transformação XSL usando os elementos a seguir.
Nome do campo | Descrição | |||
---|---|---|---|---|
Nome (Obrigatório) |
Nome da política. Os caracteres que podem ser usados no nome são restritos a:
A-Z0-9._\-$ % . No entanto, a interface de gerenciamento
aplica outras restrições,
como a remoção automática de caracteres que não são alfanuméricos.
|
|||
Fonte (opcional) |
Contém a mensagem a partir da qual as informações precisam ser extraídas. Normalmente, esse valor é
definido como request ou response , dependendo se a mensagem a ser
transformada é de entrada ou de saída.
|
|||
OutputVariable (opcional) |
Uma variável que armazena a saída da transformação. A OutputVariable não pode ser do tipo Message, ou seja, não pode ser "message", "request" ou "response". Defina esse elemento como uma variável personalizada e consuma essa variável. Para substituir o conteúdo da mensagem pelo resultado da transformação, exclua esse elemento. Por exemplo, se você estiver transformando uma mensagem para HTML, não inclua esse elemento. |
|||
ResourceURL (obrigatório) | O arquivo XSLT a ser usado para transformar a mensagem. | |||
Parâmetros (opcional) | ignoreUnresolvedVariables (opcional) |
Ignora todos os erros de variável não resolvidos nas instruções de script XSLT.
Valores válidos: true/false
Valor padrão: false
|
||
Parâmetro (opcional) | nome (obrigatório) |
Os parâmetros aceitam o uso do parâmetro XSL em suas folhas de estilo, em que o nome que você adiciona
aqui na política é o nome do parâmetro XSL. Por exemplo, se você inserir um nome
"uid", seu XSL poderá ser semelhante a este: O parâmetro extrai o valor dele de uma referência para uma variável de contexto (identificada pelo
atributo Para um exemplo e mais informações, consulte http://community.apigee.com/questions/1860/how-should-the-the-optional-parameters-on-the-xsl.html#answer-1864. |
||
ref (opcional) |
Especifica a referência que origina o valor de uma variável. Por exemplo, se um parâmetro
"uid" precisar obter o valor de uma variável chamada "authn.uid", o elemento
"Parameter" será assim: Se você usar esse atributo, não use o atributo "value". |
|||
Valor (opcional) |
É possível usar esse atributo para codificar o valor do parâmetro. Se você usar esse atributo, não use o atributo ref. |
Observações sobre uso
O XSLT é implementado em um arquivo .xsl
autônomo, que é armazenado no proxy de
API em /resources/xsl
. A política XSL apenas referencia o arquivo XSL. Consulte
Arquivos de recurso para mais informações.
A política XSL requer duas entradas:
- O nome de uma folha de estilo XSLT, que contém um conjunto de regras de transformação, armazenadas no
proxy de API em
/resources/xsl
- A origem do XML a ser transformado (normalmente uma mensagem de solicitação ou resposta)
<xsl:include>
e <xsl:import>
não são compatíveis.
O Apigee Edge depende do padrão saxon WebGL processador original e oferece suporte a vCPU 1.0 e 2.0.
Referência de erros
Runtime errors
These errors can occur when the policy executes.
Fault code | HTTP status | Cause | Fix |
---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
This error occurs if the message or string variable specified in the <Source> element of the
XSL Transform policy is either out of scope (not available in the specific flow where the
policy is being executed) or can't be resolved (is not defined).
|
build |
steps.xsl.XSLEvaluationFailed |
500 | This error occurs if the input XML payload is unavailable/malformed or the XSLTransform policy fails/is unable to transform the input XML file based on the transformation rules provided in the XSL file. There could be many different causes for the XSLTransform policy to fail. The reason for failure in the error message will provide more information on the cause. | build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
Error name | Cause | Fix |
---|---|---|
XSLEmptyResourceUrl |
If the <ResourceURL> element in the XSL Transform policy is empty, then the
deployment of the API proxy fails. |
build |
XSLInvalidResourceType |
If the resource type specified in the <ResourceURL> element of the XSL Transform
policy is not of type xsl , then the deployment of the API proxy fails. |
build |