XSLTransform নীতি

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান
তথ্য

কি

XSL ট্রান্সফর্ম নীতি XML বার্তাগুলিতে কাস্টম এক্সটেনসিবল স্টাইলশীট ভাষা রূপান্তর (XSLT) প্রয়োগ করে, আপনাকে XML থেকে অন্য ফর্ম্যাটে যেমন XML, HTML বা প্লেইন টেক্সটে রূপান্তর করতে দেয়৷ নীতিটি প্রায়শই XML সমর্থন করে এমন অ্যাপ্লিকেশানগুলিকে সংহত করতে ব্যবহৃত হয়, কিন্তু একই ডেটার জন্য আলাদা XML-ফরম্যাটের প্রয়োজন হয়৷

নমুনা

নিম্নলিখিত নমুনাগুলি XSL রূপান্তর প্রবাহে সমস্ত সংস্থান দেখায়।

XSL নীতি ->

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

সাধারণ XSL নীতি। নীতিতে উল্লেখ করা XSLT স্টাইলশীট দেখতে পরবর্তী উদাহরণে যান ( my_transform.xsl )। <Source> উপাদান গুরুত্বপূর্ণ। উদাহরণস্বরূপ, যদি আপনি যে XML রূপান্তর করতে চান সেটি প্রতিক্রিয়াতে থাকে, তাহলে রূপান্তর ঘটবে না যদি না আপনি উত্সকে response সেট করেন (এবং নীতিটি প্রতিক্রিয়া প্রবাহের সাথে সংযুক্ত থাকে)। কিন্তু এই ক্ষেত্রে, XML রূপান্তরিত করার অনুরোধে রয়েছে।

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 বার্তার উদাহরণ দেখতে পরবর্তী নমুনায় যান৷

বার্তা ->

<?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 স্টাইলশীটের পরে রূপান্তরিত বার্তাটি XML বার্তায় প্রয়োগ করা হয়।


উপাদান রেফারেন্স

নিম্নলিখিত উপাদানগুলি ব্যবহার করে একটি XSL রূপান্তর নীতি কনফিগার করুন।

ক্ষেত্রের নাম বর্ণনা
নাম ( বাধ্যতামূলক ) নীতির নাম। আপনি নামের মধ্যে যে অক্ষরগুলি ব্যবহার করতে পারেন তাতে সীমাবদ্ধ: A-Z0-9._\-$ % । যাইহোক, ম্যানেজমেন্ট UI অতিরিক্ত বিধিনিষেধ প্রয়োগ করে, যেমন স্বয়ংক্রিয়ভাবে অক্ষরগুলিকে অপসারণ করা যা আলফানিউমেরিক নয়।
উৎস ( ঐচ্ছিক ) যে বার্তা থেকে তথ্য বের করা প্রয়োজন তা রয়েছে। সাধারণত এই মানটি request বা response হিসাবে সেট করা হয়, এটি নির্ভর করে যে বার্তাটি রূপান্তরিত হবে তা অন্তর্মুখী বা আউটবাউন্ড।
  • উৎস অনুপস্থিত থাকলে, এটি একটি সাধারণ বার্তা হিসাবে বিবেচিত হয়। উদাহরণস্বরূপ, <উৎস>বার্তা</উৎস>
  • যদি সোর্স ভেরিয়েবলটি সমাধান করা যায় না, বা একটি নন-মেসেজ টাইপের সমাধান করা যায়, রূপান্তর ধাপটি ব্যর্থ হয়।
আউটপুট ভেরিয়েবল ( ঐচ্ছিক )

একটি পরিবর্তনশীল যা রূপান্তরের আউটপুট সংরক্ষণ করে। আউটপুট ভেরিয়েবল মেসেজ টাইপের হতে পারে না, অর্থাৎ এটি 'মেসেজ', 'রিকোয়েস্ট' বা 'রিস্পন্স' হতে পারে না। আপনার এই উপাদানটিকে একটি কাস্টম ভেরিয়েবল হিসাবে সেট করা উচিত এবং তারপর সেই ভেরিয়েবলটি ব্যবহার করা উচিত।

রূপান্তরের আউটপুট দিয়ে বার্তা সামগ্রী প্রতিস্থাপন করতে, এই উপাদানটি মুছুন। উদাহরণস্বরূপ, আপনি যদি একটি বার্তাকে HTML-এ রূপান্তরিত করেন, তাহলে এই উপাদানটি অন্তর্ভুক্ত করবেন না।

ResourceURL ( বাধ্যতামূলক ) XSLT ফাইলটি বার্তা রূপান্তরের জন্য ব্যবহার করা হবে।
পরামিতি ( ঐচ্ছিক ) অমীমাংসিত ভেরিয়েবল উপেক্ষা করুন ( ঐচ্ছিক )
XSLT স্ক্রিপ্ট নির্দেশাবলীতে কোনো অমীমাংসিত পরিবর্তনশীল ত্রুটি উপেক্ষা করে।
বৈধ মান: সত্য/মিথ্যা
ডিফল্ট মান: মিথ্যা
প্যারামিটার ( ঐচ্ছিক ) নাম ( বাধ্যতামূলক )

পরামিতিগুলি আপনার স্টাইলশীটে XSL প্যারামের ব্যবহার সমর্থন করে, যেখানে আপনি নীতিতে এখানে যে নামটি যোগ করেন সেটি হল XSL প্যারামের নাম৷ উদাহরণস্বরূপ, আপনি যদি "uid" এর একটি নাম লিখুন, তাহলে আপনার XSL এর মতো দেখতে হতে পারে: <xsl:param name ="uid" select="''"/> )।

প্যারাম তার মান হয় একটি প্রসঙ্গ ভেরিয়েবলের একটি রেফারেন্স থেকে ( ref অ্যাট্রিবিউট দ্বারা চিহ্নিত) বা একটি স্পষ্ট value দিয়ে পায়।

একটি উদাহরণ এবং আরও তথ্যের জন্য, http://community.apigee.com/questions/1860/how-should-the-optional-parameters-on-the-xsl.html#answer-1864 দেখুন।

রেফ (ঐচ্ছিক)

একটি ভেরিয়েবল থেকে মান উৎসারিত রেফারেন্স নির্দিষ্ট করে। উদাহরণস্বরূপ, যদি একটি "uid" প্যারামিটারকে "authn.uid" নামক একটি ভেরিয়েবল থেকে তার মান পেতে হয়, তাহলে প্যারামিটার উপাদানটি দেখতে এইরকম হবে: <Parameter name="uid" ref="authn.uid"/>

আপনি যদি এই বৈশিষ্ট্যটি ব্যবহার করেন তবে মান বৈশিষ্ট্যটি ব্যবহার করবেন না।

মান (ঐচ্ছিক)

আপনি প্যারামিটার মান হার্ড কোড এই বৈশিষ্ট্য ব্যবহার করতে পারেন.

আপনি যদি এই বৈশিষ্ট্যটি ব্যবহার করেন তবে রেফ বৈশিষ্ট্যটি ব্যবহার করবেন না।


ব্যবহারের নোট

XSLT একটি স্বতন্ত্র .xsl ফাইলে প্রয়োগ করা হয়, যা /resources/xsl এর অধীনে API প্রক্সিতে সংরক্ষণ করা হয়। XSL নীতি শুধুমাত্র XSL ফাইলের উল্লেখ করে। আরো জন্য সম্পদ ফাইল দেখুন.

XSL নীতির জন্য দুটি ইনপুট প্রয়োজন:

  • একটি XSLT স্টাইলশীটের নাম, যেটিতে রূপান্তরের নিয়মের একটি সেট রয়েছে) /resources/xsl এর অধীনে API প্রক্সিতে সংরক্ষিত
  • XML-এর উৎস যা রূপান্তরিত হবে (সাধারণত একটি অনুরোধ বা প্রতিক্রিয়া বার্তা)

<xsl:include> এবং <xsl:import> সমর্থিত নয়।

Apigee Edge Saxon XSLT প্রসেসরের উপর নির্ভর করে এবং XSLT 1.0 এবং 2.0 সমর্থন করে।


ত্রুটি উল্লেখ

রানটাইম ত্রুটি

নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷

ফল্ট কোড HTTP স্থিতি কারণ ঠিক করুন
steps.xsl.XSLSourceMessageNotAvailable 500 XSL ট্রান্সফর্ম নীতির <Source> উপাদানে নির্দিষ্ট করা বার্তা বা স্ট্রিং ভেরিয়েবলটি হয় সুযোগের বাইরে (নির্দিষ্ট প্রবাহে উপলব্ধ নয় যেখানে নীতিটি কার্যকর করা হচ্ছে) বা সমাধান করা না গেলে এই ত্রুটি ঘটে (সংজ্ঞায়িত করা হয়নি) )
steps.xsl.XSLEvaluationFailed 500 এই ত্রুটিটি ঘটে যদি ইনপুট XML পেলোড অনুপলব্ধ/বিকৃত হয় বা XSLTransform নীতি ব্যর্থ হয়/XSL ফাইলে প্রদত্ত রূপান্তর নিয়মের উপর ভিত্তি করে ইনপুট XML ফাইলটিকে রূপান্তর করতে অক্ষম হয়৷ XSLTransform নীতি ব্যর্থ হওয়ার জন্য বিভিন্ন কারণ থাকতে পারে। ত্রুটি বার্তায় ব্যর্থতার কারণ কারণ সম্পর্কে আরও তথ্য প্রদান করবে।

স্থাপনার ত্রুটি

আপনি যখন এই নীতি সম্বলিত একটি প্রক্সি স্থাপন করেন তখন এই ত্রুটিগুলি ঘটতে পারে৷

ত্রুটির নাম কারণ ঠিক করুন
XSLEmptyResourceUrl যদি XSL ট্রান্সফর্ম নীতিতে <ResourceURL> উপাদানটি খালি থাকে, তাহলে API প্রক্সির স্থাপনা ব্যর্থ হয়।
XSLInvalidResourceType যদি XSL ট্রান্সফর্ম নীতির <ResourceURL> এলিমেন্টে উল্লেখ করা রিসোর্স টাইপ xsl টাইপ না হয়, তাহলে API প্রক্সির ডিপ্লয়মেন্ট ব্যর্থ হয়।

সম্পর্কিত বিষয়