Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Cosa
Il criterio XSL Transform applica Extensible stylesheet language transformation (XSLT) personalizzate a Messaggi XML, che ti permettono di trasformarli da XML a un altro formato, ad esempio XML, HTML o testo. Il criterio viene spesso utilizzato per integrare applicazioni che supportano XML, ma che richiedono formati XML diversi per gli stessi dati.
Esempi
Gli esempi riportati di seguito mostrano tutte le risorse di un flusso di trasformazione XSL.
Criterio XSL ->
<XSL name="TransformXML"> <ResourceURL>xsl://my_transform.xsl</ResourceURL> <Source>request</Source> </XSL>
Semplice criterio XSL. Vai all'esempio successivo per visualizzare il foglio di stile TCF a cui viene fatto riferimento nella
criterio (my_transform.xsl
). L'elemento <Source>
è importante.
Ad esempio, se il codice XML che vuoi trasformare è nella risposta, la trasformazione non
si verificano a meno che non imposti l'origine su response
(e il criterio è collegato
il flusso di risposta). In questo caso, però, il codice XML da trasformare si trova nella richiesta.
Foglio di stile TCF ->
<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>
Il foglio di stile my_transform.xsl
a cui viene fatto riferimento nel criterio. Andare alla successiva
per vedere un esempio di messaggio XML in arrivo.
Messaggio ->
<?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>
Messaggio di esempio nella richiesta (indicato nel
<Source>request</Source>
nel primo campione).
Messaggio trasformato
<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>
Il messaggio trasformato dopo il foglio di stile TCF di questi esempi viene applicato al file XML. per creare un nuovo messaggio email.
Riferimento elemento
Configura un criterio di trasformazione XSL utilizzando i seguenti elementi.
Nome campo | Descrizione | |||
---|---|---|---|---|
Nome (obbligatorio) |
Nome del criterio. I caratteri utilizzabili nel nome sono limitati a:
A-Z0-9._\-$ % . Tuttavia, l'interfaccia utente di gestione applica restrizioni aggiuntive,
ad esempio rimuovendo automaticamente i caratteri non alfanumerici.
|
|||
Fonte (facoltativa) |
Contiene il messaggio da cui è necessario estrarre le informazioni. Di solito questo valore
impostato su request o response , a seconda che il messaggio
da trasformare sia in entrata che in uscita.
|
|||
OutputVariable (facoltativo) |
Una variabile che archivia l'output della trasformazione. Il campo OutputVariable non può essere del tipo di messaggio, ovvero non può essere "messaggio", "richiesta" o "risposta". Dovresti imposta questo elemento come variabile personalizzata e poi utilizza questa variabile. Per sostituire il contenuto del messaggio con l'output della trasformazione, elimina questo . Ad esempio, se trasformi un messaggio in HTML, non includere questo . |
|||
ResourceURL (obbligatorio) | Il file TCF da utilizzare per la trasformazione del messaggio. | |||
Parametri (facoltativi) | ignoraUnresolvedVariables (facoltativo) |
Ignora eventuali errori relativi alle variabili non risolte nelle istruzioni dello script TCF.
Valori validi: true/false
Valore predefinito: false
|
||
Parametro (facoltativo) | name (obbligatorio) |
I parametri supportano l'utilizzo del parametro XSL nei fogli di stile, in cui il nome aggiunto
nel criterio è riportato il nome del parametro XSL. Ad esempio, se inserisci il nome
"uid", il tuo XSL potrebbe avere un aspetto simile a questo: Il parametro riceve il valore da un riferimento a una variabile di contesto (identificata da
l'attributo Per un esempio e per ulteriori informazioni, visita la pagina http://community.apigee.com/questions/1860/how-should-the-the-optional-parameters-on-the-xsl.html#answer-1864. |
||
ref (facoltativo) |
Specifica il riferimento che genera il valore da una variabile. Ad esempio, se un
"uid" deve ottenere il suo valore da una variabile denominata "authn.uid", il parametro
avrà il seguente aspetto: Se utilizzi questo attributo, non usare l'attributo value. |
|||
value (facoltativo) |
Puoi utilizzare questo attributo per strutturare il valore del parametro come hardcoded. Se utilizzi questo attributo, non usare l'attributo ref. |
Note sull'utilizzo
Il codice TCF è implementato in un file .xsl
autonomo, che viene memorizzato nell'API
proxy in /resources/xsl
. Il criterio XSL fa semplicemente riferimento al file XSL. Consulta
File di risorse per saperne di più.
Il criterio XSL richiede due input:
- Il nome di un foglio di stile Hadoop, che contiene un insieme di regole di trasformazione) archiviato nel
Proxy API in
/resources/xsl
- L'origine del codice XML da trasformare (in genere un messaggio di richiesta o di risposta)
<xsl:include>
e <xsl:import>
non sono supportati.
Apigee Edge si basa sul metodo Saxon TCF di elaborazione e supporta TCF 1.0 e 2.0.
Messaggi di errore
Errori di runtime
Questi errori possono verificarsi quando il criterio viene eseguito.
Codice di errore | Stato HTTP | Causa | Correggi |
---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
Questo errore si verifica se la variabile del messaggio o della stringa specificata nell'elemento <Source> del criterio XSL Transform non rientra nell'ambito (non disponibile nel flusso specifico in cui viene eseguito il criterio) o non può essere risolta (non è definita).
|
build |
steps.xsl.XSLEvaluationFailed |
500 | Questo errore si verifica se il payload XML di input non è disponibile/non è in formato corretto oppure se il criterio XSLTransform ha esito negativo o non è in grado di trasformare il file XML di input in base alle regole di trasformazione fornite nel file XSL. L'errore del criterio XSLTransform può essere causato da molte cause diverse. Il motivo dell'errore nel messaggio di errore fornirà ulteriori informazioni sulla causa. | build |
Errori di deployment
Questi errori possono verificarsi quando esegui il deployment di un proxy contenente questo criterio.
Nome errore | Causa | Correggi |
---|---|---|
XSLEmptyResourceUrl |
Se l'elemento <ResourceURL> nel criterio XSL Transform è vuoto, il deployment del proxy API non va a buon fine. |
build |
XSLInvalidResourceType |
Se il tipo di risorsa specificato nell'elemento <ResourceURL> del criterio XSL Transform non è di tipo xsl , il deployment del proxy API non riesce. |
build |