Criterio XSLTransform

Questa pagina si applica a Apigee e Apigee ibridi.

Visualizza documentazione di Apigee Edge.

icona norme

Cosa

Il criterio XSLTransform applica un modello Extensible delle trasformazioni del linguaggio dei fogli di stile (XSLT) in Messaggi XML, che ti permettono di trasformarli da XML a un altro formato, ad esempio HTML o testo. Il criterio viene spesso utilizzato per integrare applicazioni che supportano XML, ma che richiedono formati basati su XML diversi per gli stessi dati.

Questo criterio è una norma estendibile e il suo utilizzo potrebbe comportare costi o di utilizzo delle applicazioni, a seconda della licenza Apigee. Per informazioni sui tipi di norme e le implicazioni per l'utilizzo, consulta Tipi di criteri.

Input

Il criterio XSL accetta i seguenti input:

  • (Obbligatorio) Il nome di un foglio di stile Hadoop che contiene un set di regole di trasformazione archiviate nel proxy API in /resources/xsl.
  • (Obbligatorio) Il file XML da trasformare (in genere una richiesta o una risposta) ).
  • (Facoltativo) Il nome di una variabile in cui è archiviato l'output.
  • (Facoltativo) Parametri che corrispondono a parametri nel foglio di stile XSL.

Processore di analisi

Apigee si affida a Saxon TCF di elaborazione e supporta TCF 1.0 e 2.0.

Elementi XSL non supportati

Il criterio XSL non supporta i seguenti elementi XSL:

  • <xsl:include>
  • <xsl:import>

Esempi

I seguenti esempi mostrano 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 XML 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 <Source> 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>&lt;Life&gt;</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>&lt;/Life&gt;</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. .

<XSL> elemento

Definisce un criterio XSLTransform.

Valore predefinito n/a
Obbligatorio? Obbligatorio
Tipo Oggetto complesso
Elemento principale n/a
Elementi secondari <OutputVariable>
<Parameters>
<ResourceURL>
<Source>

L'elemento <XSL> ha i seguenti attributi:

Attributo Descrizione Obbligatorio? Tipo
name Nome del criterio. I caratteri utilizzabili nel nome sono limitati a: A-Z0-9._\-$ %. Tuttavia, l'UI di Apigee applica restrizioni aggiuntive, ad esempio rimuovendo automaticamente i caratteri non alfanumerici. Obbligatorio Stringa

Riferimento elemento secondario

In questa sezione vengono descritti gli elementi secondari di <XSL>.

<OutputVariable>

Una variabile che archivia l'output della trasformazione. Dovresti imposta questo elemento come variabile personalizzata e poi utilizza questa variabile.

Valore predefinito n/a
Obbligatorio? Facoltativo
Tipo Stringa
Elemento principale <XSL>
Elementi secondari Nessuno

Il valore di <OutputVariable> non può essere un tipo message. cioè non può essere message, request o response.

Per sostituire il contenuto del messaggio con l'output della trasformazione, elimina questo . Ad esempio, se trasformi un messaggio in HTML, non includere questo .

<Parameters>

Aggiunge il supporto per l'elemento <xsl:param> nei fogli di stile. Sei tu a definire ogni parametro come elemento secondario <Parameter> di questo elemento.

Valore predefinito n/a
Obbligatorio? Facoltativo
Tipo Array di elementi <Parameter>
Elemento principale <XSL>
Elementi secondari <Parameter>

L'elemento <Parameters> ha i seguenti attributi:

Attributo Descrizione Obbligatorio? Tipo
ignoreUnresolvedVariables Determina se il criterio ignora eventuali errori relativi alle variabili non risolte nello script TCF. instructions. Il valore predefinito è false, il che significa che, per impostazione predefinita, il criterio genererà errori se rileva variabili non risolte. Facoltativo Booleano

<Parameter>

Definisce un parametro nell'elemento <Parameters>.

Valore predefinito n/a
Obbligatorio? Facoltativo
Tipo Oggetto complesso
Elemento principale <Parameters>
Elementi secondari Nessuno

L'elemento <Parameter> ha i seguenti attributi:

Attributo Obbligatorio? Tipo Descrizione
name Obbligatorio Stringa

Il nome del parametro. Apigee abbina il valore impostato qui con il valore attributo name su un elemento <xsl:param> in foglio di stile.

Ad esempio, se inserisci il nome uid, il tuo XSL potrebbe avere il seguente aspetto:

<xsl:param name="uid" select="''"/>

ref Facoltativo Stringa

Punta a una variabile di contesto che contiene il valore del parametro. Valori per l'attributo Prima della valutazione di questo criterio, è necessario impostare ref variabili di contesto.

Ad esempio, se un Il parametro uid deve ottenere il valore da una variabile denominata authn.uid, l'elemento <Parameter> sarebbe simile le seguenti:

<Parameter name="uid" ref="authn.uid"/>

Se utilizzi questo attributo, non usare l'attributo value.

value Facoltativo Stringa

Specifica un valore hardcoded per il parametro. Ad esempio, se un parametro denominato answer deve avere il valore 42, ovvero l'elemento <Parameter> sarà simile al seguente:

<Parameter name="answer" value="42"/>

Se utilizzi questo attributo, non usare l'attributo ref.

Il parametro riceve il suo valore dall'attributo ref o con un'indicazione esplicita value.

Per un esempio e per ulteriori informazioni, vedi Come dovrebbero essere usati i parametri facoltativi del criterio XSL Transform?.

<ResourceURL>

Il file XSL che Apigee utilizza per trasformare il messaggio. Il valore di questo elemento è nome del foglio di stile XSL memorizzato nel proxy API in /resources/xsl.

Valore predefinito n/a
Obbligatorio? Obbligatorio
Tipo Stringa
Elemento principale <XSL>
Elementi secondari Nessuno

Ad esempio:

<ResourceURL>xsl://SubscriberNumbers-Request.xsl</ResourceURL>

Per ulteriori informazioni, consulta la sezione sui file di risorse.

<Source>

Specifica il messaggio che viene trasformato. Di solito questo valore impostato su request o response, a seconda che il messaggio da trasformare sia in entrata che in uscita.

Valore predefinito n/a
Obbligatorio? Facoltativo
Tipo Stringa
Elemento principale <XSL>
Elementi secondari Nessuno

Il file XSL che definisce la trasformazione è definito dal carattere <ResourceURL>.

  • Se l'origine non è presente, viene considerata come un messaggio semplice. Ad esempio: <Source>message</Source>
  • Se la variabile di origine non può essere risolta o si risolve in un tipo non messaggio, la variabile la fase di trasformazione non va a buon fine.

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 il messaggio o la variabile di stringa specificata nell'elemento <Source> del criterio XSLTransform non rientra nell'ambito (non disponibile nel flusso specifico in cui viene eseguito il criterio) o se non può essere risolto (non è definito).
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.

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 XSLTransform è vuoto, il deployment del proxy API non va a buon fine.
XSLInvalidResourceType Se il tipo di risorsa specificato nell'elemento <ResourceURL> del criterio XSLTransform non è di tipo xsl, il deployment del proxy API non riesce.

Argomenti correlati