XSLTransform की नीति

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

क्या

XSL रूपांतरण नीति इन पर कस्टम एक्सटेंसिबल स्टाइलशीट भाषा ट्रांसफ़ॉर्मेशन (XSLT) लागू करती है एक्सएमएल मैसेज की मदद से, उन्हें एक्सएमएल से दूसरे फ़ॉर्मैट में बदला जा सकता है. जैसे, एक्सएमएल, एचटीएमएल या सादा फ़ॉर्मैट टेक्स्ट. इस नीति का इस्तेमाल अक्सर उन ऐप्लिकेशन को इंटिग्रेट करने के लिए किया जाता है जो एक्सएमएल का समर्थन करते हैं. हालांकि, इसके लिए एक ही डेटा के लिए अलग-अलग एक्सएमएल-फ़ॉर्मैट का इस्तेमाल करें.

सैंपल

नीचे दिए गए सैंपल, XSL ट्रांसफ़ॉर्मेशन फ़्लो में सभी संसाधनों को दिखाते हैं.

XSL नीति ->

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

सिंपल XSL नीति. अगले उदाहरण पर जाएं और नीति (my_transform.xsl). <Source> एलिमेंट ज़रूरी है. उदाहरण के लिए, अगर आपको जिस एक्सएमएल को बदलना है वह रिस्पॉन्स में है, तो ट्रांसफ़ॉर्मेशन नहीं होगा तब तक होता है, जब तक सोर्स को response पर सेट नहीं किया जाता (और नीति जवाब का फ़्लो). हालांकि, इस मामले में बदली जाने वाली एक्सएमएल, अनुरोध में मौजूद है.

XSLT स्टाइलशीट ->

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

नीति में बताई गई my_transform.xsl स्टाइलशीट. अगले पर जाएं सैंपल देखें.

मैसेज ->

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

अनुरोध में सैंपल मैसेज (नीति की पहले सैंपल में <Source>request</Source> एलिमेंट शामिल है).

पूरी तरह बदला गया मैसेज

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

इन सैंपल से XSLT स्टाइलशीट के बाद, बदला गया मैसेज एक्सएमएल पर लागू किया जाता है दिखाई देगा.


एलिमेंट का रेफ़रंस

इन एलिमेंट का इस्तेमाल करके, XSL ट्रांसफ़ॉर्मेशन नीति को कॉन्फ़िगर करें.

फ़ील्ड का नाम ब्यौरा
नाम (ज़रूरी है) नीति का नाम. नाम में इस्तेमाल किए जा सकने वाले वर्ण इन तक सीमित हैं: A-Z0-9._\-$ %. हालांकि, मैनेजमेंट यूज़र इंटरफ़ेस (यूआई), अतिरिक्त पाबंदियां लागू करता है, जैसे कि अक्षर और अंक के अलावा किसी और वर्ण को अपने-आप हटाना.
सोर्स (ज़रूरी नहीं) इसमें वह मैसेज होता है जिससे जानकारी निकालनी है. आम तौर पर, यह वैल्यू होती है request या response पर सेट किया जाता है. यह इस बात पर निर्भर करता है कि मैसेज को ट्रांसफ़ॉर्मेशन की प्रोसेस, इनबाउंड या आउटबाउंड है.
  • अगर सोर्स मौजूद नहीं है, तो इसे सामान्य मैसेज के तौर पर माना जाता है. उदाहरण के लिए, <Source>message</Source>
  • अगर सोर्स वैरिएबल को रिज़ॉल्व नहीं किया जा सकता या वह बिना मैसेज वाले टाइप में हल होता है, तो ट्रांसफ़ॉर्मेशन का चरण पूरा नहीं हुआ.
OutputVariable (ज़रूरी नहीं है)

ऐसा वैरिएबल जो ट्रांसफ़ॉर्मेशन के आउटपुट को सेव करता है. OutputVariable यह नहीं हो सकता मैसेज का टाइप है. इसका मतलब है कि यह 'मैसेज', 'अनुरोध' या 'जवाब' नहीं हो सकता. आपको ऐसा करना चाहिए इस एलिमेंट को कस्टम वैरिएबल के तौर पर सेट करके, उस वैरिएबल का इस्तेमाल करें.

मैसेज के कॉन्टेंट को ट्रांसफ़ॉर्मेशन के आउटपुट से बदलने के लिए, इसे मिटाएं एलिमेंट. उदाहरण के लिए, अगर किसी मैसेज को एचटीएमएल में बदला जा रहा है, तो इसे शामिल न करें एलिमेंट.

ResourceURL (ज़रूरी) संदेश को बदलने के लिए उपयोग की जाने वाली XSLT फ़ाइल.
पैरामीटर (ज़रूरी नहीं) UnresolvedVariables (ज़रूरी नहीं)
XSLT स्क्रिप्ट के निर्देशों में, वैरिएबल की ऐसी सभी गड़बड़ियों को अनदेखा करता है जिन्हें ठीक नहीं किया गया है.
मान्य वैल्यू: सही/गलत
डिफ़ॉल्ट वैल्यू: false
पैरामीटर (ज़रूरी नहीं) नाम (ज़रूरी)

पैरामीटर आपकी स्टाइलशीट में XSL पैरामीटर का उपयोग करने का समर्थन करते हैं, जहां आप जो नाम जोड़ते हैं यहां नीति में XSL पैरामीटर का नाम है. उदाहरण के लिए, यदि आप "uid", आपका XSL कुछ ऐसा दिखाई दे सकता है: <xsl:param name="uid" select="''"/>).

पैरामीटर का मान या तो संदर्भ से लेकर संदर्भ चर (जिसकी पहचान होती है) ref एट्रिब्यूट) या साफ़ तौर पर value के साथ.

उदाहरण और ज़्यादा जानकारी के लिए, http://community.apigee.com/questions/1860/how-should-the-the-optional-parameters-on-the-xsl.html#answer-1864 पर जाएं.

रेफ़रल (ज़रूरी नहीं)

उस रेफ़रंस के बारे में बताता है जो किसी वैरिएबल से वैल्यू लेता है. उदाहरण के लिए, अगर &quot;uid&quot; पैरामीटर को अपना मान "authn.uid" नामक वैरिएबल से लेना होगा, जो कि पैरामीटर है एलिमेंट ऐसा दिखेगा: <Parameter name="uid" ref="authn.uid"/>

इस एट्रिब्यूट का इस्तेमाल करने पर, वैल्यू एट्रिब्यूट का इस्तेमाल न करें.

वैल्यू (ज़रूरी नहीं)

इस एट्रिब्यूट का इस्तेमाल, पैरामीटर की वैल्यू को हार्ड कोड करने के लिए किया जा सकता है.

अगर इस एट्रिब्यूट का इस्तेमाल किया जाता है, तो रेफ़रंस एट्रिब्यूट का इस्तेमाल न करें.


इस्तेमाल की जानकारी

XSLT को एक स्टैंड-अलोन .xsl फ़ाइल में लागू किया जाता है, जो एपीआई में सेव होती है /resources/xsl से कम प्रॉक्सी. XSL नीति सिर्फ़ XSL फ़ाइल का रेफ़रंस देती है. यहां जाएं: अधिक के लिए संसाधन फ़ाइलें.

XSL नीति के लिए दो इनपुट ज़रूरी हैं:

  • XSLT स्टाइलशीट का नाम, जिसमें बदलाव के नियमों का एक सेट होता है) /resources/xsl से कम के लिए एपीआई प्रॉक्सी
  • बदला जाने वाला एक्सएमएल का सोर्स (आम तौर पर, कोई अनुरोध या रिस्पॉन्स मैसेज)

<xsl:include> और <xsl:import> इस्तेमाल नहीं किए जा सकते.

Apigee Edge, सैक्सन XSLT फ़ंक्शन पर निर्भर करता है प्रोसेसर है और यह XSLT 1.0 और 2.0 पर काम करता है.


गड़बड़ी का रेफ़रंस

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.

मिलते-जुलते विषय