Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Ne
XSL Dönüştürme politikası, XML mesajlarına özel Genişletilebilir stil sayfası dil dönüşümleri (XSLT) uygulayarak bunları XML'den XML, HTML veya düz metin gibi başka bir biçime dönüştürmenizi sağlar. Bu politika genellikle XML'i destekleyen ancak aynı veriler için farklı XML biçimleri gerektiren uygulamaları entegre etmek amacıyla kullanılır.
Sana Özel
Aşağıdaki örnekler, XSL dönüştürme akışındaki tüm kaynakları gösterir.
XSL politikası ->
<XSL name="TransformXML"> <ResourceURL>xsl://my_transform.xsl</ResourceURL> <Source>request</Source> </XSL>
Basit XSL politikası. Politikada (my_transform.xsl
) başvurulan XSLT stil sayfasını görmek için sonraki örneğe gidin. <Source>
öğesi önemlidir.
Örneğin, dönüştürmek istediğiniz XML yanıtta yer alıyorsa kaynağı response
olarak ayarlamadığınız ve politika yanıt akışına eklenmediği sürece dönüşüm gerçekleşmez. Ancak bu durumda, dönüştürülecek XML istekte yer alıyor.
XSLT stil sayfası ->
<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>
Politikada referans verilen my_transform.xsl
stil sayfası. Gelen XML mesajı örneğini görmek için sonraki örneğe gidin.
Mesaj ->
<?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>
İstekteki örnek mesaj (ilk örnekte politikanın <Source>request</Source>
öğesinde belirtilmiştir).
İleti dönüştürüldü
<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>
Bu örneklerdeki XSLT stil sayfası XML mesajına uygulandıktan sonraki dönüştürülen mesaj.
Öğe referansı
Aşağıdaki öğeleri kullanarak bir XSL Dönüştürme politikası yapılandırın.
Alan adı | Açıklama | |||
---|---|---|---|---|
Ad (Zorunlu) |
Politikanın adı. Adda kullanabileceğiniz karakterler şunlarla sınırlıdır:
A-Z0-9._\-$ % . Bununla birlikte, Yönetim kullanıcı arayüzü, alfanümerik olmayan karakterlerin otomatik olarak kaldırılması gibi ek kısıtlamalar uygular.
|
|||
Kaynak (İsteğe bağlı) |
Bilginin çıkarılması gereken mesajı içerir. Bu değer, dönüştürülecek mesajın gelen veya giden olmasına bağlı olarak genellikle request veya response olarak ayarlanır.
|
|||
ExitVariable (İsteğe bağlı) |
Dönüşümün çıktısını depolayan bir değişken. Çıktı Değişkeni Mesaj türünde olamaz. Yani "mesaj", "istek" veya "yanıt" olamaz. Bu öğeyi özelleştirilebilen değişken olarak ayarlayıp bu değişkeni kullanmalısınız. Mesaj içeriğini dönüşümün çıktısıyla değiştirmek için bu öğeyi silin. Örneğin, bir mesajı HTML'ye dönüştürüyorsanız bu öğeyi eklemeyin. |
|||
ResourceURL (Zorunlu) | İletiyi dönüştürmek için kullanılacak XSLT dosyası. | |||
Parametreler (İsteğe bağlı) | ignoreUnresolvedVariables (İsteğe bağlı) |
XSLT komut dosyası talimatlarındaki çözülmemiş değişken hatalarını yok sayar.
Geçerli değerler: true/false
Varsayılan değer: false
|
||
Parametre (İsteğe bağlı) | ad (Zorunlu) |
Parametreler, stil sayfalarınızda XSL parametresinin kullanımını destekler. Burada, politikada buraya eklediğiniz ad, XSL parametresinin adıdır. Örneğin, "uid" adını girerseniz XSL'niz şuna benzer şekilde görünebilir: Parametre, değerini bir bağlam değişkenine referanstan ( Bir örnek ve daha fazla bilgi için bkz. http://community.apigee.com/questions/1860/how-should-the-the-optional-parameters-on-the-xsl.html#answer-1864. |
||
ref (İsteğe bağlı) |
Değeri bir değişkenden alan referansı belirtir. Örneğin, bir "uid" parametresinin, değerini "authn.uid" adlı bir değişkenden alması gerekiyorsa Parametre öğesi şu şekilde görünür: Bu özelliği kullanıyorsanız değer özelliğini kullanmayın. |
|||
value (İsteğe bağlı) |
Parametrenin değerini sabit bir şekilde kodlamak için bu özelliği kullanabilirsiniz. Bu özelliği kullanıyorsanız ref özelliğini kullanmayın. |
Kullanım notları
XSLT, /resources/xsl
altındaki API proxy'sinde depolanan bağımsız bir .xsl
dosyasında uygulanır. XSL politikası yalnızca XSL dosyasına referans verir. Daha fazla bilgi için Kaynak dosyaları bölümüne bakın.
XSL politikası iki giriş gerektirir:
/resources/xsl
altındaki API proxy'sinde depolanan bir dönüşüm kuralları grubu içeren XSLT stil sayfasının adı)- Dönüştürülecek XML'in kaynağı (genellikle bir istek veya yanıt mesajı)
<xsl:include>
ve <xsl:import>
desteklenmez.
Apigee Edge, Saxon XSLT işlemciye dayalı olup XSLT 1.0 ve 2.0'ı destekler.
Hata referansı
Çalışma zamanı hataları
Politika yürütüldüğünde bu hatalar ortaya çıkabilir.
Hata kodu | HTTP durumu | Neden | Düzelt |
---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
Bu hata, XSL Dönüşümü politikasının <Source> öğesinde belirtilen mesaj veya dize değişkeni kapsam dışındaysa (politikanın yürütüldüğü belirli akışta kullanılamaz) ya da çözülemiyorsa (tanımlanmamışsa) ortaya çıkar.
|
build |
steps.xsl.XSLEvaluationFailed |
500 | Bu hata, giriş XML yükü kullanılamıyorsa/bozuk biçimlendirilmişse veya XSLTransform politikası XSL dosyasında sağlanan dönüştürme kurallarına göre giriş XML dosyasını dönüştüremiyorsa ortaya çıkar. XSLTransform politikasının başarısız olmasının birçok farklı nedeni olabilir. Hata mesajındaki hatanın nedeni hakkında daha fazla bilgi sağlanır. | build |
Dağıtım hataları
Bu hatalar, bu politikayı içeren bir proxy dağıttığınızda ortaya çıkabilir.
Hata adı | Neden | Düzelt |
---|---|---|
XSLEmptyResourceUrl |
XSL Dönüşümü politikasındaki <ResourceURL> öğesi boşsa API proxy'sinin dağıtımı başarısız olur. |
build |
XSLInvalidResourceType |
XSL Dönüşümü politikasının <ResourceURL> öğesinde belirtilen kaynak türü xsl türünde değilse API proxy'sinin dağıtımı başarısız olur. |
build |