Diese Seite gilt für Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen
Was
Die XSLTransform-Richtlinie wendet benutzerdefinierte Extensible Stylesheet Language-Transformationen (XSLT) auf XML-Nachrichten an. Damit können sie von XML in ein anderes Format wie XML, HTML oder Nur-Text umgewandelt werden. Die Richtlinie wird häufig verwendet, um Anwendungen zu integrieren, die XML unterstützen, aber für dieselben Daten unterschiedliche XML-basierte Formate erfordern.
Diese Richtlinie ist eine erweiterbare Richtlinie, deren Verwendung je nach Apigee-Lizenz Auswirkungen auf die Kosten oder die Nutzung haben kann. Informationen zu Richtlinientypen und Auswirkungen auf die Nutzung finden Sie unter Richtlinientypen.
Eingaben
Die XSL-Richtlinie übernimmt die folgenden Eingaben:
- (Erforderlich) Der Name eines XSLT-Stylesheets, das eine Reihe von Transformationsregeln enthält, die im API-Proxy unter
/resources/xsl
gespeichert sind. - (Erforderlich) Die zu transformierende XML-Datei (in der Regel eine Anfrage oder Antwortnachricht).
- (Optional) Der Name einer Variablen, in der die Ausgabe gespeichert wird.
- (Optional) Parameter, die mit Parametern im XSL-Stylesheet übereinstimmen.
Parsing-Prozessor
Apigee stützt sich auf den Saxon XSLT-Prozessor und unterstützt XSLT 1.0 und 2.0.
Nicht unterstützte XSL-Elemente
Die XSL-Richtlinie unterstützt die folgenden XSL-Elemente nicht:
<xsl:include>
<xsl:import>
Beispiele
Die folgenden Beispiele zeigen einen XSL-Transformationsablauf:
XSL-Richtlinie -->
<XSL name="TransformXML"> <ResourceURL>xsl://my_transform.xsl</ResourceURL> <Source>request</Source> </XSL>
Einfache XSL-Richtlinie. Im nächsten Beispiel wird das in der Richtlinie referenzierte XSLT-Stylesheet angezeigt (my_transform.xsl
). Das Element <Source>
ist wichtig.
Wenn beispielsweise die XML-Datei, die Sie transformieren möchten, in der Antwort enthalten ist, wird die Transformation nur ausgeführt, wenn Sie <Source>
auf response
setzen und die Richtlinie an den Antwortablauf angehängt ist. In diesem Fall befindet sich die zu transformierende XML jedoch in der Anfrage.
XSLT-Stylesheet -->
<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>
Das Stylesheet my_transform.xsl
, auf das in der Richtlinie verwiesen wird. Rufen Sie das nächste Beispiel auf, um ein Beispiel für eine eingehende XML-Nachricht zu sehen.
Nachricht -->
<?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>
Beispielnachricht in der Anfrage (in Beispiel 1 im Element <Source>request</Source>
der Richtlinie angegeben).
Transformierte Nachricht
<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>
Die transformierte Nachricht nach dem XSLT-Stylesheet aus diesen Beispielen wird auf die XML-Nachricht angewendet.
Element <XSL>
Definiert eine XSLTransform
-Richtlinie.
Standardwert | – |
Erforderlich? | Erforderlich |
Typ | Komplexes Objekt |
Übergeordnetes Element | – |
Untergeordnete Elemente |
<OutputVariable> <Parameters> <ResourceURL> <Source> |
Das <XSL>
-Element hat die folgenden Attribute:
Attribut | Beschreibung | Erforderlich? | Typ |
---|---|---|---|
name |
Name der Richtlinie. Folgende Zeichen sind im Namen zulässig: A-Z0-9._\-$ % . Die Apigee-Benutzeroberfläche erzwingt jedoch zusätzliche Einschränkungen, z. B. das automatische Entfernen nicht alphanumerischer Zeichen. |
Erforderlich | String |
Verweis auf untergeordnetes Element
In diesem Abschnitt werden die untergeordneten Elemente von <XSL>
beschrieben.
<OutputVariable>
Eine Variable, die die Ausgabe der Transformation speichert. Sie sollten dieses Element als benutzerdefinierte Variable festlegen und dann diese Variable nutzen.
Standardwert | – |
Erforderlich? | Optional |
Typ | String |
Übergeordnetes Element |
<XSL>
|
Untergeordnete Elemente | Keine |
Der Wert von <OutputVariable>
darf nicht vom Typ Nachricht sein. Das heißt, er darf nicht message
, request
oder response
sein.
Um den Nachrichteninhalt durch die Ausgabe der Transformation zu ersetzen, löschen Sie dieses Element. Wenn Sie beispielsweise eine Nachricht in HTML umwandeln, fügen Sie dieses Element nicht ein.
<Parameters>
In Ihren Stylesheets wird das Element <xsl:param>
unterstützt. Sie definieren jeden Parameter als untergeordnetes <Parameter>
-Element dieses Elements.
Standardwert | – |
Erforderlich? | Optional |
Typ | Array von <Parameter> -Elementen |
Übergeordnetes Element |
<XSL>
|
Untergeordnete Elemente |
<Parameter> |
Das <Parameters>
-Element hat die folgenden Attribute:
Attribut | Beschreibung | Erforderlich? | Typ |
---|---|---|---|
ignoreUnresolvedVariables |
Ermittelt, ob die Richtlinie alle Fehler bzgl. nicht aufgelöster Variablen in den Anweisungen des XSLT-Skripts ignoriert. Der Standardwert ist false . Das bedeutet, dass die Richtlinie standardmäßig Fehler ausgibt, wenn nicht aufgelöste Variablen gefunden werden. |
Optional | Boolesch |
<Parameter>
Definiert einen Parameter im Element <Parameters>
.
Standardwert | – |
Erforderlich? | Optional |
Typ | Komplexes Objekt |
Übergeordnetes Element |
<Parameters>
|
Untergeordnete Elemente | Keine |
Das <Parameter>
-Element hat die folgenden Attribute:
Attribut | Erforderlich? | Typ | Beschreibung |
---|---|---|---|
name |
Erforderlich | String |
Name des Parameters. Apigee vergleicht den hier festgelegten Wert mit dem Wert des Attributs Wenn Sie beispielsweise den Namen <xsl:param name="uid" select="''"/> |
ref |
Optional | String |
Verweist auf eine Kontextvariable, die den Wert für den Parameter enthält. Werte für die Kontextvariablen Wenn ein <Parameter name="uid" ref="authn.uid"/> Wenn Sie dieses Attribut verwenden, verwenden Sie nicht das Attribut |
value |
Optional | String |
Gibt einen hartcodierten Wert für den Parameter an. Beispiel: Ein Parameter mit dem Namen <Parameter name="answer" value="42"/> Wenn Sie dieses Attribut verwenden, verwenden Sie nicht das Attribut |
Der Parameter erhält seinen Wert entweder aus dem Attribut ref
oder mit einem expliziten value
.
Ein Beispiel und weitere Informationen finden Sie unter Wie sollten die optionalen Parameter der XSL-Transformationsrichtlinie verwendet werden?.
<ResourceURL>
Die XSL-Datei, die Apigee für die Transformation der Nachricht verwendet. Der Wert dieses Elements ist der Name des XSL-Stylesheets, das im API-Proxy unter /resources/xsl
gespeichert ist.
Standardwert | – |
Erforderlich? | Erforderlich |
Typ | String |
Übergeordnetes Element |
<XSL>
|
Untergeordnete Elemente | Keine |
Beispiel:
<ResourceURL>xsl://SubscriberNumbers-Request.xsl</ResourceURL>
Weitere Informationen finden Sie unter Ressourcendateien.
<Source>
Gibt die Nachricht an, die transformiert wird. Normalerweise ist dieser Wert auf request
oder response
gesetzt, je nachdem, ob die transformierte Nachricht eingehend oder ausgehend ist.
Standardwert | – |
Erforderlich? | Optional |
Typ | String |
Übergeordnetes Element |
<XSL>
|
Untergeordnete Elemente | Keine |
Die XSL-Datei, die die Transformation definiert, wird durch <ResourceURL>
definiert.
- Wenn die Quelle fehlt, wird sie als einfache Nachricht behandelt. Beispiel:
<Source>message</Source>
- Wenn die Quellvariable nicht aufgelöst werden kann oder in einen Nicht-Nachrichtentyp aufgelöst wird, schlägt der Transformationsschritt fehl.
Fehlerreferenz
Laufzeitfehler
Diese Fehler können bei Ausführung der Richtlinie auftreten.
Fehlercode | HTTP-Status | Ursache | Beheben |
---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
Dieser Fehler tritt auf, wenn die Nachricht oder Stringvariable, die im <Source> -Element der Richtlinie XSLTransform angegeben ist, entweder außerhalb des zulässigen Bereichs ist (nicht im spezifischen Ablauf, in dem die Richtlinie ausgeführt wird) oder nicht aufgelöst werden kann (ist nicht definiert).
|
build |
steps.xsl.XSLEvaluationFailed |
500 |
Dieser Fehler tritt auf, wenn die XML-Eingabenutzlast nicht verfügbar/fehlerhaft ist oder die XSLTransform-Richtlinie fehlschlägt/die XML-Eingabedatei nicht auf Basis der in der XSL-Datei bereitgestellten Transformationsregeln transformieren kann. Es sind viele verschiedene Gründe dafür denkbar, dass die XSLTransform-Richtlinie fehlschlägt. Der in der Fehlermeldung angegebene Fehlerursache enthält weitere Informationen zum Grund. | build |
Bereitstellungsfehler
Diese Fehler können auftreten, wenn Sie einen Proxy bereitstellen, der diese Richtlinie enthält.
Fehlername | Ursache | Beheben |
---|---|---|
XSLEmptyResourceUrl |
Wenn das Element <ResourceURL> in der Richtlinie XSLTransform leer ist, schlägt die Bereitstellung des API-Proxys fehl. |
build |
XSLInvalidResourceType |
Wenn der im <ResourceURL> -Element der XSLTransform -Richtlinie angegebene Ressourcentyp nicht dem Typ xsl ist, schlägt die Bereitstellung des API-Proxys fehl. |
build |