Estás viendo la documentación de Apigee Edge.
Ve a la
Documentación de Apigee X. información
Qué
La política de transformación de XSL aplica transformaciones de lenguaje de hoja de estilo extensible (XSLT) personalizadas a mensajes XML, lo que te permite transformarlos del formato XML a otro formato, como XML, HTML o texto sin formato. La política se usa a menudo con el fin de integrar aplicaciones que admiten el archivo XML, pero que requieren diferentes formatos XML para los mismos datos.
Ejemplos
En los siguientes ejemplos, se muestran todos los recursos en un flujo de transformación de XSL.
Política XSL ->
<XSL name="TransformXML"> <ResourceURL>xsl://my_transform.xsl</ResourceURL> <Source>request</Source> </XSL>
Política XSL simple. Ve al siguiente ejemplo para ver la hoja de estilo XSLT a la que se hace referencia en la política (my_transform.xsl
). El elemento <Source>
es importante.
Por ejemplo, si el XML que deseas transformar está en la respuesta, no se producirá la transformación, a menos que establezcas el origen en response
(y la política se adjunte al flujo de respuesta). Sin embargo, en este caso, el XML que se va a transformar se encuentra en la solicitud.
Hoja de estilo XSLT ->
<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>
La hoja de estilo my_transform.xsl
a la que se hace referencia en la política. Ve a la siguiente muestra para ver un ejemplo de un mensaje XML entrante.
Mensaje ->
<?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>
Mensaje de muestra en la solicitud (que se indicó en el elemento <Source>request</Source>
de la política en la primera muestra).
Mensaje transformado
<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>
El mensaje transformado que aparece después de la hoja de estilo XSLT de estas muestras se aplica al mensaje XML.
Referencia de elementos
Configura una política de transformación XSL mediante los siguientes elementos:
Nombre del campo | Descripción | |||
---|---|---|---|---|
Nombre (obligatorio) |
Nombre de la política. Los caracteres que puede usar en el nombre están restringidos a:
A-Z0-9._\-$ % . Sin embargo, la IU de administración aplica restricciones adicionales,
como quitar automáticamente los caracteres que no son alfanuméricos.
|
|||
Fuente (opcional) |
Contiene el mensaje del cual se debe extraer la información. Por lo general, este valor se establece en request o response , según si el mensaje que se va a transformar es entrante o saliente.
|
|||
OutputVariable (opcional) |
Una variable que almacena el resultado de la transformación. La variable OutputVariable no puede ser de tipo de mensaje, es decir, no puede ser “mensaje”, “solicitud” ni “respuesta”. Debes configurar este elemento para que sea una variable personalizada y, luego, consumirla. Para reemplazar el contenido del mensaje con el resultado de la transformación, borra este elemento. Por ejemplo, si transformas un mensaje en HTML, no incluyas este elemento. |
|||
ResourceURL (obligatorio) | El archivo XSLT que se usa para transformar el mensaje. | |||
Parámetros (opcional) | ignoreUnresolvedVariables (opcional) |
Ignora los errores variables no resueltos en las instrucciones de la secuencia de comandos de XSLT.
Valores válidos: verdadero/falso
Valor predeterminado: falso
|
||
Parámetro (opcional) | Nombre (obligatorio) |
Los parámetros admiten el uso del parámetro XSL en las hojas de estilo, en el que el nombre que agregas aquí en la política es el nombre del parámetro XSL. Por ejemplo, si ingresas un nombre “uid”, tu XSL podría verse de la siguiente manera: El parámetro obtiene su valor de una referencia a una variable de contexto (identificada por
el atributo Para ver un ejemplo y más información, consulta http://community.apigee.com/questions/1860/how-should-the-the-optional-parameters-on-the-xsl.html#answer-1864. |
||
ref (opcional) |
Especifica la referencia que origina el valor de una variable. Por ejemplo, si un parámetro “uid” necesita obtener su valor de una variable llamada “authn.uid”, el elemento de parámetro se vería de la siguiente manera: Si usa este atributo, no use el atributo de valor. |
|||
Valor (opcional) |
Puedes usar este atributo para codificar el valor del parámetro de forma hard-coded. Si usas este atributo, no uses el atributo ref. |
Notas de uso
La hoja de estilo XSLT se implementa en un archivo .xsl
independiente, que se almacena en el proxy de API, en /resources/xsl
. La política XSL solo hace referencia al archivo XSL. Consulta Archivos de recursos para obtener más información.
La política XSL requiere dos entradas:
- El nombre de una hoja de estilo XSLT, que contiene un conjunto de reglas de transformación, almacenada en el proxy de API en
/resources/xsl
- La fuente del XML que se transformará (por lo general, un mensaje de solicitud o respuesta)
<xsl:include>
y <xsl:import>
no son compatibles.
Apigee Edge se basa en el modelo Saxon XSLT y admite XSLT 1.0 y 2.0.
Referencia de errores
Errores de entorno de ejecución
Estos errores pueden producirse cuando se ejecuta la política.
Código de falla | Estado de HTTP | Causa | Corregir |
---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
Este error se produce si el mensaje o la variable de string especificada en el elemento <Source> de la política de transformación XSL está fuera del alcance (no está disponible en el flujo específico en el que se ejecuta la política) o no se puede resolver (no está definido).
|
build |
steps.xsl.XSLEvaluationFailed |
500 | Este error se produce si la carga útil del archivo XML de entrada no está disponible o tiene una forma incorrecta o si la política XSLTransform falla o no puede transformar el archivo XML de entrada según las reglas de transformación proporcionadas en el archivo XSL. Puede haber muchas causas diferentes por las cuales la política XSLTransform puede fallar. El motivo de la falla en el mensaje de error proporcionará más información sobre la causa. | build |
Errores en la implementación
Estos errores pueden generarse cuando implementas un proxy que contiene esta política.
Nombre del error | Causa | Corregir |
---|---|---|
XSLEmptyResourceUrl |
Si el elemento <ResourceURL> en la política de transformación de XSL está vacío, la implementación del proxy de API falla. |
build |
XSLInvalidResourceType |
Si el tipo de recurso especificado en el elemento <ResourceURL> de la política de transformación XSL no es del tipo xsl , la implementación del proxy de la API fallará. |
build |