سياسة OneBoxransform

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

الأدوات المستخدمة

تطبِّق سياسة XSL Transform تحويلات لغة أوراق الأنماط القابلة للتوسيع (XSLT) مخصّصة على رسائل XML، ما يتيح لك تحويلها من 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 Transformation باستخدام العناصر التالية.

اسم الحقل الوصف
الاسم (إلزامي) اسم السياسة تقتصر الأحرف التي يمكنك استخدامها في الاسم على: A-Z0-9._\-$ %. ومع ذلك، تفرض واجهة مستخدم الإدارة قيودًا إضافية، مثل إزالة الأحرف غير الأبجدية الرقمية تلقائيًا.
المصدر (اختياري) يحتوي على الرسالة التي يجب استخراج المعلومات منها. عادةً ما يتم ضبط هذه القيمة على request أو response، حسب ما إذا كانت الرسالة المطلوب تحويلها واردة أو صادرة.
  • في حال عدم توفّر المصدر، يتم التعامل معه كرسالة بسيطة. على سبيل المثال، <Source>message</Source>
  • إذا تعذّر تحديد قيمة المتغيّر المصدر، أو إذا تم تحديد قيمة غير نوع الرسالة، ستتعذّر خطوة التحويل.
OutputVariable (اختياري)

متغيّر يخزّن ناتج عملية التحويل لا يمكن أن يكون OutputVariable من نوع Message، أي لا يمكن أن يكون "رسالة" أو "طلب" أو "رد". عليك ضبط هذا العنصر ليكون متغيّرًا مخصّصًا، ثم استخدامه.

لاستبدال محتوى الرسالة بنتيجة عملية التحويل، احذف هذا العنصر. على سبيل المثال، إذا كنت تحوّل رسالة إلى HTML، لا تدرِج هذا العنصر.

ResourceURL (إلزامي) ملف XSLT الذي سيتم استخدامه لتحويل الرسالة
المَعلمات (اختيارية) ignoreUnresolvedVariables (اختيارية)
يتجاهل أي أخطاء متعلّقة بالمتغيرات لم يتم حلّها في تعليمات نص XSLT البرمجي.
القيم الصالحة: true/false
القيمة التلقائية: false
المَعلمة (اختيارية) الاسم (إلزامي)

تتيح المَعلمات استخدام مَعلمة XSL في أوراق الأنماط، حيث يكون الاسم الذي تضيفه هنا في السياسة هو اسم مَعلمة XSL. على سبيل المثال، إذا أدخلت اسمًا مثل "uid"، قد يبدو ملف XSL على النحو التالي: <xsl:param name="uid" select="''"/>).

تستمد السمة param قيمتها إما من مرجع إلى متغيّر سياق (يتم تحديده بواسطة السمة ref) أو باستخدام value صريح.

للاطّلاع على مثال ومزيد من المعلومات، يُرجى الانتقال إلى منشور المنتدى.

ref (اختياري)

تحدّد هذه السمة المرجع الذي يستمد القيمة من متغيّر. على سبيل المثال، إذا كانت المَعلمة "uid" بحاجة إلى الحصول على قيمتها من متغيّر يُسمى "authn.uid"، سيبدو عنصر المَعلمة على النحو التالي: <Parameter name="uid" ref="authn.uid"/>

في حال استخدام هذه السمة، لا تستخدِم سمة القيمة.

القيمة (اختيارية)

يمكنك استخدام هذه السمة لتضمين قيمة المَعلمة بشكل ثابت.

في حال استخدام هذه السمة، لا تستخدم السمة ref.


ملاحظات الاستخدام

يتم تنفيذ XSLT في ملف .xsl مستقل، ويتم تخزينه في خادم وكيل لواجهة برمجة التطبيقات ضمن /resources/xsl. تشير سياسة XSL إلى ملف XSL فقط. يمكنك الاطّلاع على ملفات الموارد لمزيد من المعلومات.

تتطلّب سياسة XSL إدخال قيمتَين:

  • اسم ورقة أنماط XSLT التي تحتوي على مجموعة من قواعد التحويل) المخزّنة في خادم وكيل لواجهة برمجة التطبيقات ضمن /resources/xsl
  • مصدر ملف XML المطلوب تحويله (عادةً ما يكون رسالة طلب أو استجابة)

لا يمكن استخدام <xsl:include> و<xsl:import>.

تعتمد Apigee Edge على معالج Saxon XSLTوتتيح استخدام XSLT 1.0 و2.0.


مرجع الخطأ

أخطاء في وقت التشغيل

يمكن أن تحدث هذه الأخطاء عند تنفيذ السياسة.

رمز الخطأ رموز حالة HTTP السبب إصلاح
steps.xsl.XSLSourceMessageNotAvailable 500 يحدث هذا الخطأ إذا كان متغيّر الرسالة أو السلسلة المحدَّد في العنصر <Source> في سياسة XSL Transform خارج النطاق (أي أنّه غير متوفّر في المسار المحدّد الذي يتم فيه تنفيذ السياسة) أو لا يمكن حلّه (لم يتم تحديده).
steps.xsl.XSLEvaluationFailed 500 يحدث هذا الخطأ إذا كانت حمولة بيانات XML المدخلة غير متوفرة/غير صحيحة أو إذا تعذَّر أو يتعذّر على سياسة BigQueryransform تحويل ملف XML المدخل استنادًا إلى قواعد التحويل المتوفرة في ملف XSL. قد يكون هناك العديد من الأسباب المختلفة لتعذُّر تنفيذ سياسة WebRTC. سيوفر سبب عدم ظهور رسالة الخطأ مزيدًا من المعلومات حول السبب.

أخطاء النشر

يمكن أن تحدث هذه الأخطاء عند نشر خادم وكيل يحتوي على هذه السياسة.

اسم الخطأ السبب إصلاح
XSLEmptyResourceUrl إذا كان العنصر <ResourceURL> في سياسة تحويل XSL فارغًا، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.
XSLInvalidResourceType إذا لم يكن نوع المورد المحدّد في العنصر <ResourceURL> ضمن سياسة XSL Transform من النوع xsl، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

مواضيع ذات صلة