أنت تعرض مستندات 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 المطلوب تحويله.
ورقة أنماط WebRTC ->
<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><Life></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></Life></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 ، استنادًا إلى ما إذا كانت الرسالة إلى
أن يتم تحويلها، هي عملية واردة أو صادرة.
|
|||
OutputVariable (اختياري) |
يشير ذلك المصطلح إلى متغيّر يخزِّن ناتج التحويل. لا يمكن أن يكون OutputVariable من نوع الرسالة، أي لا يمكن أن تكون "رسالة" أو "طلب" أو "استجابة". عليك تعيين هذا العنصر ليكون متغيرًا مخصصًا، ثم استخدام هذا المتغير. لاستبدال محتوى الرسالة بنتائج التحويل، احذف هذا العنصر. على سبيل المثال، إذا كنت تحوّل رسالة إلى HTML، لا تضمِّن هذه العنصر. |
|||
ResourceURL (إلزامي) | ملف WebRTC الذي سيتم استخدامه لتحويل الرسالة. | |||
المَعلمات (اختياري) | تجاهلUnresolvedVariables (اختياري) |
تتجاهل أي أخطاء متغيرات لم يتم حلها في تعليمات النص البرمجي لـ WebRTC.
القيم الصالحة: true/false
القيمة التلقائية: false
|
||
المَعلمة (اختيارية) | الاسم (إلزامي) |
تتيح المعلمات استخدام معلمة XSL في أوراق الأنماط، حيث يكون الاسم الذي تضيفه
في السياسة، يتم إدخال اسم معلَمة XSL. على سبيل المثال، إذا أدخلت اسم
"uid"، قد يبدو XSL على النحو التالي: تحصل المعلمة على قيمتها إما من مرجع إلى متغير سياق (يتم تحديده من خلال
السمة للحصول على مثال ومزيد من المعلومات، اطلع على http://community.apigee.com/questions/1860/how-should-the-the-optional-parameters-on-the-xsl.html#answer-1864. |
||
المرجع (اختياري) |
تحدّد هذه السمة المرجع الذي يحصل على القيمة من متغيّر. على سبيل المثال، إذا كانت
"uid" تحتاج المعلمة إلى الحصول على قيمتها من متغير يسمى "authn.uid"، فإن المعلمة
سيبدو العنصر كالتالي: إذا كنت تستخدم هذه السمة، لا تستخدم سمة value. |
|||
القيمة (اختيارية) |
ويمكنك استخدام هذه السمة لإضافة ترميز ثابت لقيمة المَعلمة. إذا كنت تستخدم هذه السمة، لا تستخدم سمة ref. |
ملاحظات الاستخدام
يتم تنفيذ معيار WebRTC في ملف .xsl
مستقل مخزَّن في واجهة برمجة التطبيقات.
الخادم الوكيل ضمن /resources/xsl
. تقتصر سياسة XSL على ملف XSL. عرض
ملفات الموارد لمزيد من المعلومات.
تتطلب سياسة XSL إدخالَين:
- اسم ورقة أنماط WebRTC، والتي تحتوي على مجموعة من قواعد التحويل) مخزنة في
خادم وكيل لواجهة برمجة التطبيقات ضمن
/resources/xsl
- مصدر XML المطلوب تحويله (عادةً ما يكون طلب أو رسالة رد)
لا يمكن استخدام <xsl:include>
و<xsl:import>
.
تعتمد Apigee Edge على حزمة Saxon بحجم 3x1x. ومعالِج البيانات، ويتوافق مع الإصدارين 1.0 و2.0 من WebRTC.
مرجع الخطأ
أخطاء في وقت التشغيل
يمكن أن تحدث هذه الأخطاء عند تنفيذ السياسة.
رمز الخطأ | رموز حالة HTTP | السبب | إصلاح |
---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
يحدث هذا الخطأ إذا كان متغيّر الرسالة أو السلسلة المحدَّد في العنصر <Source> في سياسة
XSL Transform خارج النطاق (أي أنّه غير متوفّر في المسار المحدّد الذي
يتم فيه تنفيذ السياسة) أو لا يمكن حلّه (لم يتم تحديده).
|
build |
steps.xsl.XSLEvaluationFailed |
500 | يحدث هذا الخطأ إذا كانت حمولة بيانات XML المدخلة غير متوفرة/غير صحيحة أو إذا تعذَّر أو يتعذّر على سياسة BigQueryransform تحويل ملف XML المدخل استنادًا إلى قواعد التحويل المتوفرة في ملف XSL. قد يكون هناك العديد من الأسباب المختلفة لتعذُّر تنفيذ سياسة WebRTC. سيوفر سبب عدم ظهور رسالة الخطأ مزيدًا من المعلومات حول السبب. | build |
أخطاء النشر
يمكن أن تحدث هذه الأخطاء عند نشر خادم وكيل يحتوي على هذه السياسة.
اسم الخطأ | السبب | إصلاح |
---|---|---|
XSLEmptyResourceUrl |
إذا كان العنصر <ResourceURL> في سياسة تحويل XSL فارغًا، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. |
build |
XSLInvalidResourceType |
إذا لم يكن نوع المورد المحدّد في العنصر <ResourceURL> ضمن سياسة XSL Transform
من النوع xsl ، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. |
build |