XSLTransform politikası

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>&lt;Life&gt;</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>&lt;/Life&gt;</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.
  • Kaynak eksikse, basit bir ileti olarak ele alınır. Örneğin, <Source>message</Source>
  • Kaynak değişken çözümlenemez veya mesaj olmayan bir türe çözümlenirse dönüştürme adımı başarısız olur.
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: <xsl:param name="uid" select="''"/>).

Parametre, değerini bir bağlam değişkenine referanstan (ref özelliği tarafından tanımlanır) veya açık bir value ile alır.

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: <Parameter name="uid" ref="authn.uid"/>

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.
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.

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.
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.

İlgili konular