Anda sedang melihat dokumentasi Apigee Edge.
Lihat dokumentasi Apigee X.

Apa
Kebijakan Transformasi XSL menerapkan Transformasi bahasa stylesheet yang dapat diperluas (XSLT) ke pesan XML, yang memungkinkan Anda mengubahnya dari XML ke format lain, seperti XML, HTML, atau teks biasa. Kebijakan ini sering digunakan untuk mengintegrasikan aplikasi yang mendukung XML, tetapi memerlukan format XML yang berbeda untuk data yang sama.
Sample
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>
penting.
Misalnya, jika XML yang ingin diubah berada dalam respons, transformasi tidak akan
terjadi kecuali jika Anda menetapkan Sumber ke response
(dan kebijakan disertakan ke
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. Buka contoh
berikutnya 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>
Pesan contoh dalam permintaan (ditunjukkan dalam elemen <Source>request</Source>
kebijakan 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 pesan XML.
Referensi elemen
Konfigurasikan 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 karakter yang bukan alfanumerik secara otomatis.
|
|||
Sumber (Opsional) |
Berisi pesan tempat informasi perlu diekstrak. Biasanya nilai ini
ditetapkan ke request atau response , bergantung pada apakah pesan yang akan
diubah masuk atau keluar.
|
|||
OutputVariable (Opsional) |
Variabel yang menyimpan output dari transformasi. OutputVariable tidak boleh berupa jenis Pesan, yaitu tidak boleh berupa 'message', 'request', atau 'response'. Anda harus menetapkan elemen ini sebagai variabel khusus, lalu menggunakan variabel tersebut. Untuk mengganti konten pesan dengan output transformasi, hapus elemen ini. Misalnya, jika Anda mengubah pesan ke HTML, jangan sertakan elemen ini. |
|||
ResourceURL (Wajib) | File XSLT yang akan digunakan untuk mengubah pesan. | |||
Parameter (Opsional) | diabaikanUnresolvedVariables (Opsional) |
Mengabaikan error variabel yang belum terselesaikan dalam petunjuk skrip XSLT.
Nilai valid: true/false
Nilai default: false
|
||
Parameter (Opsional) | nama (Wajib) |
Parameter mendukung penggunaan parameter XSL di stylesheet, dengan nama yang Anda tambahkan
di sini dalam kebijakan adalah nama parameter XSL. Misalnya, jika Anda memasukkan nama "uid", XSL Anda mungkin akan terlihat seperti ini: Parameter ini mendapatkan nilainya dari referensi ke variabel konteks (diidentifikasi oleh
atribut Untuk contoh dan informasi selengkapnya, lihat http://community.apigee.com/questions/1860/how- should-the-optional-parameters-on-the-xsl.html#answer-1864. |
||
ref (Opsional) |
Menentukan referensi yang menghasilkan nilai dari variabel. Misalnya, jika
parameter "uid" perlu mendapatkan nilainya dari variabel bernama "authn.uid", elemen
Parameter akan terlihat seperti ini: Jika Anda menggunakan atribut ini, jangan gunakan atribut nilai. |
|||
value (Opsional) |
Anda dapat menggunakan atribut ini untuk meng-hardcode nilai parameter. Jika Anda menggunakan atribut ini, jangan gunakan atribut ref. |
Catatan penggunaan
XSLT diimplementasikan di file .xsl
mandiri, yang disimpan di proxy API pada /resources/xsl
. Kebijakan XSL hanya merujuk pada file XSL. Lihat File resource untuk informasi selengkapnya.
Kebijakan XSL memerlukan dua input:
- Nama stylesheet XSLT, yang berisi kumpulan aturan transformasi) yang disimpan di
proxy API pada
/resources/xsl
- Sumber XML yang akan diubah (biasanya pesan permintaan atau respons)
<xsl:include>
dan <xsl:import>
tidak didukung.
Apigee Edge bergantung pada prosesor Saxon XSLT, dan mendukung XSLT 1.0 dan 2.0.
Referensi error
Error runtime
Error ini dapat terjadi saat kebijakan dijalankan.
Kode kesalahan | Status HTTP | Penyebab | Perbaiki |
---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
Error ini terjadi jika variabel pesan atau string yang ditentukan dalam elemen <Source> dalam kebijakan Transformasi XSL berada di luar cakupan (tidak tersedia dalam alur tertentu tempat kebijakan dijalankan) atau tidak dapat diselesaikan (tidak ditentukan).
|
build |
steps.xsl.XSLEvaluationFailed |
500 | Error ini terjadi jika payload XML input tidak tersedia/rusak atau kebijakan XSLTransform gagal/tidak dapat mengubah file XML input berdasarkan aturan transformasi yang disediakan dalam file XSL. Kemungkinan ada berbagai penyebab kegagalan kebijakan XSLTransform. Alasan kegagalan dalam pesan error akan memberikan informasi selengkapnya tentang penyebabnya. | build |
Error deployment
Error ini dapat terjadi saat Anda men-deploy proxy yang berisi kebijakan ini.
Nama error | Penyebab | Perbaiki |
---|---|---|
XSLEmptyResourceUrl |
Jika elemen <ResourceURL> dalam kebijakan Transformasi XSL kosong, maka deployment proxy API akan gagal. |
build |
XSLInvalidResourceType |
Jika jenis resource yang ditentukan dalam elemen <ResourceURL> dari kebijakan Transformasi XSL bukan jenis xsl , maka deployment proxy API akan gagal. |
build |