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ı

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause Fix
steps.xsl.XSLSourceMessageNotAvailable 500 This error occurs if the message or string variable specified in the <Source> element of the XSL Transform policy is either out of scope (not available in the specific flow where the policy is being executed) or can't be resolved (is not defined).
steps.xsl.XSLEvaluationFailed 500 This error occurs if the input XML payload is unavailable/malformed or the XSLTransform policy fails/is unable to transform the input XML file based on the transformation rules provided in the XSL file. There could be many different causes for the XSLTransform policy to fail. The reason for failure in the error message will provide more information on the cause.

Deployment errors

These errors can occur when you deploy a proxy containing this policy.

Error name Cause Fix
XSLEmptyResourceUrl If the <ResourceURL> element in the XSL Transform policy is empty, then the deployment of the API proxy fails.
XSLInvalidResourceType If the resource type specified in the <ResourceURL> element of the XSL Transform policy is not of type xsl, then the deployment of the API proxy fails.

İlgili konular