XSLTransform politikası

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
info

Ne?

XSL Dönüşümü politikası, XML mesajlarına özel Genişletilebilir Stil Sayfası Dili Dönüşümleri (XSLT) uygular. Bu sayede, XML'den başka bir biçime (ör. XML, HTML veya düz metin) dönüştürme işlemi yapabilirsiniz. Bu politika genellikle XML'yi destekleyen ancak aynı veriler için farklı XML biçimleri gerektiren uygulamaları entegre etmek için kullanılır.

Örnekler

Aşağıdaki örneklerde, bir XSL dönüşümü akışındaki tüm kaynaklar gösterilmektedir.

XSL politikası ->

<XSL name="TransformXML">
  <ResourceURL>xsl://my_transform.xsl</ResourceURL>
  <Source>request</Source>
</XSL>

Basit XSL politikası. Politikada referans verilen XSLT stil sayfasını görmek için sonraki örneğe gidin (my_transform.xsl). <Source> öğesi önemlidir. Örneğin, dönüştürmek istediğiniz XML yanıttaysa Kaynak'ı 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ı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ı. Gelen bir XML mesajı örneği için sonraki örneğe gidin.

Message ->

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

İstekle ilgili örnek mesaj (ilk örnekteki politika <Source>request</Source> öğesinde belirtilir).

Dönüştürülmüş 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 mesajına uygulandıktan sonra dönüştürülmüş mesaj.


Öğe referansı

Aşağıdaki öğeleri kullanarak bir XSL Dönüşümü 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._\-$ %. Ancak yönetim kullanıcı arayüzü, alfanümerik olmayan karakterleri otomatik olarak kaldırma gibi ek kısıtlamalar uygular.
Kaynak (isteğe bağlı) Bilgilerin çıkarılması gereken iletiyi içerir. Bu değer genellikle dönüştürülecek iletinin gelen veya giden olmasına bağlı olarak request ya da response olarak ayarlanır.
  • Kaynak eksikse ileti basit bir ileti olarak değerlendirilir. Örneğin, <Source>message</Source>
  • Kaynak değişken çözümlenemezse veya ileti türü olmayan bir türe çözümlenirse dönüştürme adımı başarısız olur.
OutputVariable (İsteğe bağlı)

Dönüşümün çıktısını depolayan bir değişken. OutputVariable, Message türünde olamaz. Yani "message", "request" veya "response" olamaz. Bu öğeyi özelleştirilebilen değişken olarak ayarlayıp bu değişkeni kullanmalısınız.

İleti içeriğini dönüştürme çıktısıyla değiştirmek için bu öğeyi silin. Örneğin, bir iletiyi 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 (isteğe bağlı) ignoreUnresolvedVariables (İsteğe bağlı)
XSLT komut dosyası talimatlarındaki çözümlenmemiş değişken hatalarını yoksayar.
Geçerli değerler: doğru/yanlış
Varsayılan değer: false
Parametre (isteğe bağlı) name (Zorunlu)

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

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

Örnek ve daha fazla bilgi için topluluk gönderisine bakın.

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 Parameter öğ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 (isteğe bağlı)

Parametrenin değerini sabit kodlamak için bu özelliği kullanabilirsiniz.

Bu özelliği kullanıyorsanız ref özelliğini kullanmayın.


Kullanım notları

XSLT, API proxy'sinde /resources/xsl altında 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ünü inceleyin.

XSL politikası için iki giriş gerekir:

  • API proxy'sinde /resources/xsl altında depolanan bir XSLT stil sayfasının (bir dizi dönüştürme kuralı içerir) adı.
  • Dönüştürülecek XML'nin kaynağı (genellikle bir istek veya yanıt mesajı)

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

Apigee Edge, Saxon XSLT işlemcisini kullanır ve XSLT 1.0 ile 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