Esta é a documentação do Apigee Edge.
Acesse
Documentação da Apigee X. informações
![](https://docs.apigee.com/static/api-platform/images/icon_policy_mediation.jpg?authuser=0000&hl=pt)
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
Erros de execução
Esses erros podem ocorrer quando a política é executada.
Código de falha | Status HTTP | Causa | Corrigir |
---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
Esse erro vai ocorrer se a mensagem ou a variável de string especificada no elemento <Source> da política de transformação XSL estiver fora do escopo (indisponível no fluxo específico em que a política está sendo executada) ou não puder ser resolvida (não está definida).
|
build |
steps.xsl.XSLEvaluationFailed |
500 | Esse erro ocorrerá se o payload XML de entrada estiver indisponível/malformado ou se a política XSLTransform falhar/não puder transformar o arquivo XML de entrada com base nas regras de transformação fornecidas no arquivo XSL. Pode haver muitas causas diferentes para a falha da política XSLTransform. O motivo da falha na mensagem de erro fornecerá mais informações sobre a causa. | build |
Erros na implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
Nome do erro | Causa | Corrigir |
---|---|---|
XSLEmptyResourceUrl |
Se o elemento <ResourceURL> na política de transformação XSL estiver vazio, a implantação do proxy da API falhará. |
build |
XSLInvalidResourceType |
Se o tipo de recurso especificado no elemento <ResourceURL> da política de transformação XSL não for do tipo xsl , a implantação do proxy de API falhará. |
build |