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 पर काम करता है.


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

रनटाइम से जुड़ी गड़बड़ियां

नीति के लागू होने पर ये गड़बड़ियां हो सकती हैं.

गड़बड़ी का कोड एचटीटीपी कोड स्थिति वजह समाधान
steps.xsl.XSLSourceMessageNotAvailable 500 यह गड़बड़ी तब होती है, जब XSL कन्वर्ज़न नीति के <Source> एलिमेंट में दिया गया मैसेज या स्ट्रिंग वैरिएबल, दायरे से बाहर हो (उस खास फ़्लो में उपलब्ध न हो जहां नीति लागू की जा रही है) या उसे ठीक नहीं किया जा सकता (इसके बारे में नहीं बताया गया है).
steps.xsl.XSLEvaluationFailed 500 यह गड़बड़ी तब होती है, जब इनपुट एक्सएमएल पेलोड उपलब्ध न हो या गलत तरीके से फ़ॉर्मैट किया गया हो या XSLTransform की नीति, इनपुट एक्सएमएल फ़ाइल में बदलाव न कर पाए या XSL फ़ाइल में दिए गए बदलाव के नियमों के आधार पर, इनपुट एक्सएमएल फ़ाइल को नहीं बदल पा रही हो. XSLTransform की नीति के काम न करने की कई वजहें हो सकती हैं. गड़बड़ी के मैसेज में असफल होने की वजह के बारे में ज़्यादा जानकारी दी जाएगी.

डिप्लॉयमेंट से जुड़ी गड़बड़ियां

ये गड़बड़ियां तब हो सकती हैं, जब इस नीति वाले किसी प्रॉक्सी को डिप्लॉय किया जाता है.

गड़बड़ी का नाम वजह समाधान
XSLEmptyResourceUrl अगर XSL Transform नीति में <ResourceURL> एलिमेंट खाली है, तो एपीआई प्रॉक्सी को लागू नहीं किया जा सकेगा.
XSLInvalidResourceType अगर XSL Transform नीति के <ResourceURL> एलिमेंट में बताया गया रिसॉर्स टाइप xsl टाइप का नहीं है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता.

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