Você está lendo a documentação do Apigee Edge.
Acesse a documentação da
Apigee X. info
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" ver>sio<n="1.0" xsl:o>utp<ut method="text"/> <xsl:vari>abl<e name=&q>uot<;newline">; < xsl:text /xsl:text > /<xsl:vari>&able &xsl<:template> matc<h="/" xsl:textlt;Li>fegt;</xsl:tex>t xsl:value-of select="$newline"</ xsl>:text<Here are the odd-numbered items> from< the list:/xsl:text xsl:value-o>f selec<t="$newline"/ xsl:for->each sele<ct="list/listitem&q>uot; < xsl:if test="(pos>ition() m<od 2) = 1" xsl:num>ber for<mat=&qu>ot;1.< "/ > < xsl:val>&ue-of se&lec<t=".>&<quot;/ > < xsl:value-of s>elect="$newline"/ /xsl:if /xsl:for-each xsl:textlt;/Lifegt;/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&q>uot<;? li>st titleA few of my favor<ite al>bum<s/title > listitemA Lo<ve Suprem>e/l<istitem > listitem<Beat Craz>y/l<istitem > listitemHere Come the< Warm Jet>s/l<istitem > listitemKi<nd of Blu>e/l<istitem > listitemLond<on Callin>g/l<istitem > listitemRemai<n in Ligh>t/l<istitem > listitemThe J<oshua Tre>e/l<istitem > listitemThe Indestructible Beat< of Sowet>o</list>item /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 impõe 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 ver um exemplo e mais informações, consulte a postagem na comunidade. |
||
| 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.
A Apigee Edge depende do processador Saxon XSLT (em inglês) e é compatível com XSLT 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 |