Anda sedang melihat dokumentasi Apigee Edge.
Buka
Dokumentasi Apigee X. info

Apa
Kebijakan Transformasi XSL menerapkan Transformasi bahasa stylesheet khusus (XSLT) untuk Pesan XML, memungkinkan Anda mengubahnya dari XML ke format lain, seperti XML, HTML, atau teks biasa teks. Kebijakan ini sering digunakan untuk mengintegrasikan aplikasi yang mendukung XML, tetapi memerlukan format XML yang berbeda untuk data yang sama.
Contoh
Contoh berikut menunjukkan semua resource dalam alur transformasi XSL.
Kebijakan XSL ->
<XSL name="TransformXML"> <ResourceURL>xsl://my_transform.xsl</ResourceURL> <Source>request</Source> </XSL>
Kebijakan XSL sederhana. Buka contoh berikutnya untuk melihat stylesheet XSLT yang dirujuk dalam
kebijakan (my_transform.xsl
). Elemen <Source>
itu penting.
Misalnya, jika XML yang ingin Anda ubah ada dalam respons, transformasi tidak akan
terjadi kecuali Anda menyetel Sumber ke response
(dan kebijakan tersebut dilampirkan
alur respons). Namun, dalam hal ini, XML yang akan diubah ada dalam permintaan.
Stylesheet 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>
Stylesheet my_transform.xsl
yang dirujuk dalam kebijakan. Ke yang berikutnya
contoh untuk melihat contoh pesan XML yang masuk.
Pesan ->
<?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>
Contoh pesan dalam permintaan (ditunjukkan dalam
<Source>request</Source>
dalam contoh pertama).
Pesan yang diubah
<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>
Pesan yang diubah setelah stylesheet XSLT dari contoh ini diterapkan ke XML untuk membuat pesan email baru.
Referensi elemen
Konfigurasi kebijakan Transformasi XSL menggunakan elemen berikut.
Nama Kolom | Deskripsi | |||
---|---|---|---|---|
Nama (Wajib) |
Nama kebijakan. Karakter yang dapat Anda gunakan dalam nama dibatasi untuk:
A-Z0-9._\-$ % . Namun, UI Pengelolaan
menerapkan pembatasan tambahan,
seperti menghapus secara otomatis
karakter yang bukan alfanumerik.
|
|||
Sumber (Opsional) |
Berisi pesan tempat informasi perlu diekstrak. Biasanya nilai ini
ditetapkan ke request atau response , bergantung pada apakah pesan akan
yang akan ditransformasi adalah
masuk atau keluar.
|
|||
OutputVariable (Opsional) |
Variabel yang menyimpan output transformasi. OutputVariable tidak boleh dari Jenis pesan, yaitu, tidak boleh berupa 'pesan', 'permintaan', atau 'respons'. Anda seharusnya menyetel elemen ini menjadi variabel kustom, lalu memakai variabel tersebut. Untuk mengganti konten pesan dengan output transformasi, hapus ini . Misalnya, jika Anda mengubah pesan ke HTML, jangan sertakan pesan ini . |
|||
ResourceURL (Wajib) | File XSLT yang akan digunakan untuk mengubah pesan. | |||
Parameter (Opsional) | ignoreUnresolvedVariables (Opsional) |
Mengabaikan error variabel yang belum terselesaikan dalam petunjuk skrip XSLT.
Nilai valid: benar/salah
Nilai default: false
|
||
Parameter (Opsional) | nama (Wajib) |
Parameter mendukung penggunaan parameter XSL di stylesheet Anda, dengan nama yang Anda tambahkan
di sini dalam kebijakan adalah
nama parameter XSL. Misalnya, jika Anda memasukkan nama
"uid", XSL Anda mungkin terlihat seperti ini: Parameter mendapatkan nilainya dari referensi ke variabel konteks (yang diidentifikasi oleh
atribut Untuk contoh dan informasi selengkapnya, lihat http://community.apigee.com/questions/1860/how-should-the-the-optional-parameters-on-the-xsl.html#answer-1864. |
||
ref (Opsional) |
Menentukan referensi yang menghasilkan nilai dari variabel. Misalnya, jika
"uid" perlu mendapatkan nilainya dari variabel yang disebut "authn.uid", Parameter
akan terlihat seperti ini: Jika Anda menggunakan atribut ini, jangan gunakan atribut nilai. |
|||
value (Opsional) |
Anda dapat menggunakan atribut ini untuk melakukan hard code nilai parameter. Jika Anda menggunakan atribut ini, jangan gunakan atribut ref. |
Catatan penggunaan
XSLT diimplementasikan dalam file .xsl
mandiri, yang disimpan di API
proxy di /resources/xsl
. Kebijakan XSL hanya merujuk ke file XSL. Lihat
File resource untuk mengetahui informasi selengkapnya.
Kebijakan XSL memerlukan dua input:
- Nama stylesheet XSLT, yang berisi serangkaian aturan transformasi) yang disimpan dalam
Proxy API di bagian
/resources/xsl
- Sumber XML yang akan diubah (biasanya pesan permintaan atau respons)
<xsl:include>
dan <xsl:import>
tidak didukung.
Apigee Edge mengandalkan Saxon XSLT prosesor, dan mendukung XSLT 1.0 dan 2.0.
Referensi error
Runtime errors
These errors can occur when the policy executes.
Fault code | HTTP status | Cause | Fix |
---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
This error occurs if the message or string variable specified in the <Source> element of the
XSL Transform policy is either out of scope (not available in the specific flow where the
policy is being executed) or can't be resolved (is not defined).
|
build |
steps.xsl.XSLEvaluationFailed |
500 | This error occurs if the input XML payload is unavailable/malformed or the XSLTransform policy fails/is unable to transform the input XML file based on the transformation rules provided in the XSL file. There could be many different causes for the XSLTransform policy to fail. The reason for failure in the error message will provide more information on the cause. | build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
Error name | Cause | Fix |
---|---|---|
XSLEmptyResourceUrl |
If the <ResourceURL> element in the XSL Transform policy is empty, then the
deployment of the API proxy fails. |
build |
XSLInvalidResourceType |
If the resource type specified in the <ResourceURL> element of the XSL Transform
policy is not of type xsl , then the deployment of the API proxy fails. |
build |