سياسة OneBoxransform

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

الموضوع

تطبّق سياسة تحويل XSL عمليات تحويل مخصصة للغة صفحات الأنماط القابلة للامتداد (XSLT) على رسائل XML، ما يتيح لك تحويلها من XML إلى تنسيق آخر، مثل XML أو HTML أو نص عادي. غالبًا ما يتم استخدام السياسة لدمج التطبيقات التي تتوافق مع XML، ولكنّها تتطلّب تنسيقات XML مختلفة للبيانات نفسها.

عيّنات

تعرض النماذج التالية جميع الموارد في تدفق تحويل XSL.

سياسة XSL ->

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

سياسة XSL بسيطة. انتقِل إلى المثال التالي للاطّلاع على ورقة أنماط WebRTC المُشار إليها في السياسة (my_transform.xsl). يُعدّ العنصر <Source> مهمًا. على سبيل المثال، إذا تم تضمين ملف XML الذي تريد تحويله في الاستجابة، لن تحدث عملية التحويل ما لم تضبط المصدر على response (ويتم إرفاق السياسة بمسار الردّ). ولكن في هذه الحالة، يتضمّن الطلب ملف XML المُراد تحويله.

ورقة أنماط TalkBack ->

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

يتم تطبيق الرسالة التي تم تحويلها بعد ورقة أنماط WebRTC من هذه النماذج على رسالة XML.


مرجع العنصر

قم بتكوين سياسة تحويل XSL باستخدام العناصر التالية.

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

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

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

عنوان URL للمصدر (إلزامي) ملف KML الذي سيتم استخدامه لتحويل الرسالة.
المَعلمات (اختيارية) noneUnresolvedVariables (اختياري)
وهو يتجاهل أي أخطاء متغيرة لم يتم حلها في تعليمات نص DKIM.
القيم الصالحة: صحيح/خطأ
القيمة التلقائية: 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.

ref (اختياري)

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

إذا كنت تستخدم هذه السمة، لا تستخدم سمة القيمة.

value (اختياري)

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

إذا كنت تستخدم هذه السمة، لا تستخدم السمة ref.


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

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

تتطلب سياسة XSL إدخالين:

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

السمتان <xsl:include> و<xsl:import> غير متاحتَين.

تعتمد Apigee Edge على معالج Saxon {9/}، وتتوافق مع الإصدارين 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، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

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