<ph type="x-smartling-placeholder"></ph>
Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur
Apigee X-Dokumentation. Weitere Informationen
Was
Die XSLTransform-Richtlinie wendet benutzerdefinierte Extensible Stylesheet-Sprachtransformationen (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-Formate erfordern.
Beispiele
Die folgenden Beispiele zeigen alle Ressourcen in einem XSL-Transformations-Flow.
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 XP-Stylesheet angezeigt (my_transform.xsl
). Das Element <Source>
ist wichtig.
Wenn sich die zu transformierende XML beispielsweise in der Antwort befindet, erfolgt die Transformation nur, wenn Sie die Quelle auf response
setzen und die Richtlinie an den Antwort-Flow 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.
Elementreferenz
Konfigurieren Sie eine XSL-Transformationsrichtlinie.
Feldname | Beschreibung | |||
---|---|---|---|---|
Name (erforderlich) |
Name der Richtlinie. Folgende Zeichen sind im Namen zulässig: A-Z0-9._\-$ % . Die Verwaltungsoberfläche erzwingt jedoch zusätzliche Einschränkungen,
zum Beispiel das automatische Entfernen
von nichtalphanumerischen Zeichen.
|
|||
Quelle (optional) |
Enthält die Nachricht, aus der Informationen extrahiert werden sollen. Normalerweise ist dieser Wert auf request oder response gesetzt, je nachdem, ob die transformierte Nachricht eingehender oder ausgehender Traffic ist.
|
|||
OutputVariable (optional) |
Eine Variable, die die Ausgabe der Transformation speichert. Die OutputVariable kann nicht vom Typ "Message" sein, d. h. nicht "message", "request" oder "response". Sie sollten dieses Element als benutzerdefinierte Variable festlegen und dann diese Variable nutzen. 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. |
|||
ResourceURL (erforderlich) | Die DHCP-Datei, die für die Transformation der Nachricht verwendet werden soll. | |||
Parameter (optional) | ignoreUnresolvedVariables (optional) |
Ignoriert alle nicht behobenen Variablenfehler in den Anweisungen des XSLT-Skripts.
Gültige Werte: true/false
Standardwert: false
|
||
Parameter (Optional) | Name (erforderlich) |
Parameter unterstützen die Verwendung von XSL-Parameter in Ihren Stylesheets, wobei der Name, den Sie hier in der Richtlinie hinzufügen, der Name des XSL-Parameters ist. Wenn Sie beispielsweise den Namen "uid" eingeben, könnte XSL in etwa so aussehen: Der Parameter wird entweder aus einem Verweis auf eine Kontextvariable (durch das Attribut Ein Beispiel und weitere Informationen finden Sie unter http://community.apigee.com/questions/1860/how-should-the-the-optional-parameters-on-the-xsl.html#answer-1864. |
||
ref (optional) |
Gibt den Verweis an, der den Wert aus einer Variablen bezieht. Wenn ein "uid"-Parameter beispielsweise seinen Wert aus einer Variablen namens "authn.uid" abrufen muss, sieht das Parameter-Element so aus: Wenn Sie dieses Attribut verwenden, sollten Sie das Wertattribut nicht verwenden. |
|||
Wert (optional) |
Sie können dieses Attribut verwenden, um den Wert des Parameters hartzucodieren. Verwenden Sie dieses Attribut nicht mit dem Attribut "ref". |
Verwendungshinweise
XSLT wird in einer eigenständigen .xsl
-Datei implementiert, die im API-Proxy unter /resources/xsl
gespeichert ist. Die XSL-Richtlinie verweist nur auf die XSL-Datei. Weitere Informationen finden Sie unter Ressourcendateien.
Für die XSL-Richtlinie sind zwei Eingaben erforderlich:
- Der Name eines GQL-Stylesheets, das eine Reihe von Transformationsregeln enthält, die im API-Proxy unter
/resources/xsl
gespeichert sind - Die Quelle der zu transformierenden XML-Datei (normalerweise eine Anfrage- oder Antwortnachricht)
<xsl:include>
und <xsl:import>
werden nicht unterstützt.
Apigee Edge basiert auf dem Saxon XSLT -Prozessor, unterstützt XSLT 1.0 und 2.0.
Fehlerreferenz
Laufzeitfehler
Diese Fehler können bei Ausführung der Richtlinie auftreten.
Fehlercode | HTTP-Status | Ursache | Problembehebung |
---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
Dieser Fehler tritt auf, wenn die im <Source> -Element der XSL-Transformationsrichtlinie angegebene Nachricht oder Stringvariable entweder außerhalb des Geltungsbereichs liegt (in dem spezifischen Ablauf, in dem die Richtlinie ausgeführt wird, nicht verfügbar) oder nicht aufgelöst werden kann (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 | Problembehebung |
---|---|---|
XSLEmptyResourceUrl |
Wenn das Element <ResourceURL> in der XSL-Transformationsrichtlinie leer ist, schlägt die Bereitstellung des API-Proxys fehl. |
build |
XSLInvalidResourceType |
Entspricht der im <ResourceURL> -Element der XSL-Transform-Richtlinie angegebene Ressourcentyp nicht dem Typ xsl , schlägt die Bereitstellung des API-Proxys fehl. |
build |