XSLTransform politikası

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Ne?

XSL Dönüştürme politikası, özel Genişletilebilir stil sayfası dil dönüşümleri (XSLT) özelliklerini XML mesajları ile XML'den XML, HTML veya plain gibi başka bir biçime dönüştürmenizi sağlar. metin. Politika genellikle XML'i destekleyen ancak farklı XML biçimleri kullanabilirsiniz.

Örnekler

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ı. (my_transform.xsl). <Source> öğesi önemlidir. Örneğin, dönüştürmek istediğiniz XML yanıttaysa dönüşüm kaynağı response olarak ayarlanmadığı sürece (ve politika dahil edilir. Ancak bu durumda, dönüştürülecek XML istekte yer alır.

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ı. Bir sonraki örneğini inceleyin.

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 (politikanın <Source>request</Source> öğesidir).

Dönüştürülen ileti

<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'e uygulandıktan sonraki dönüştürülen mesaj mesajını alırsınız.


Öğ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 aşağıdakilerle sınırlıdır: A-Z0-9._\-$ % Ancak Yönetim Kullanıcı Arayüzü'nde ek kısıtlamalar uygulanır. Örneğin, alfanümerik olmayan karakterleri otomatik olarak kaldırabilirsiniz.
Kaynak (İsteğe bağlı) Bilgilerin çıkarılması gereken mesajı içerir. Bu değer genelde mesajın request veya response olarak ayarlanmasını gelen veya giden bir işlemdir.
  • Kaynak eksikse basit bir ileti olarak değerlendirilir. Örneğin, <Source>message</Source>
  • Kaynak değişken çözümlenemezse veya mesaj olmayan bir türe dönüşürse dönüştürme adımı başarısız olur.
Çıktı Değişkeni (İsteğe bağlı)

Dönüşümün çıktısını depolayan değişken. Çıktıleştirilebilen değişkeni İleti türü "mesaj", "istek" veya "yanıt" olamaz. Şunları yapmalısınız: öğesi özelleştirilebilen değişken olarak ayarlayıp bu değişkeni kullanır.

İleti içeriğini dönüşüm çıkışıyla değiştirmek için şunu silin: öğesine dokunun. Örneğin, bir iletiyi HTML'ye dönüştürüyorsanız bunu dahil etmeyin. öğesine dokunun.

ResourceURL (Zorunlu) Mesajı dönüştürmek için kullanılacak XSLT dosyası.
Parametreler (İsteğe bağlı) allowUnresolvedVariables (İsteğe bağlı)
XSLT komut dosyası talimatlarındaki çözülmemiş değişken hatalarını yok sayar.
Geçerli değerler: doğru/yanlış
Varsayılan değer: false
Parametre (İsteğe bağlı) ad (Zorunlu)

Parametreler, stil sayfalarınızda XSL parametresinin kullanımını destekler. Burada, eklediğiniz ad değeri, XSL parametresinin adıdır. Örneğin, "uid" ise XSL'niz şuna benzer şekilde görünebilir: <xsl:param name="uid" select="''"/>).

Parametre, değerini bir bağlam değişkenine yapılan başvurudan ( ref özelliği) veya açık bir value ile belirtilmiş olmalıdı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, &quot;uid&quot; parametresinin, değerini "authn.uid" adlı bir değişkenden alması gerekir. öğesi aşağıdaki gibi 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ı)

Parametre 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, API'de depolanan bağımsız bir .xsl dosyasında uygulanır. proxy'si /resources/xsl altında. XSL politikası yalnızca XSL dosyasına referans verir. Görüntüleyin Daha fazla bilgi için Kaynak dosyaları bölümüne bakın.

XSL politikası için iki giriş gereklidir:

  • Bir dönüştürme kuralları kümesini içeren XSLT stil sayfasının adı) /resources/xsl altında API proxy'si
  • Dönüştürülecek XML'in kaynağı (genellikle bir istek veya yanıt mesajı)

<xsl:include> ve <xsl:import> desteklenmiyor.

Apigee Edge, Saxon XSLT'yi kullanır. işlemci gerektirir ve 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