أنت تطّلع على مستندات Apigee Edge.
انتقِل إلى مستندات
Apigee X. المعلومات
XSLSourceMessageNotAvailable
رمز الخطأ
steps.xsl.XSLSourceMessageNotAvailable
نص الاستجابة للخطأ
{ "fault": { "faultstring": "response message is not available for XSL: policy_name", "detail": { "errorcode": "steps.xsl.XSLSourceMessageNotAvailable" } } }
مثال على رسالة الخطأ
{
"fault": {
"faultstring": "response message is not available for XSL: xslt",
"detail": {
"errorcode": "steps.xsl.XSLSourceMessageNotAvailable"
}
}
}
السبب
يحدث هذا الخطأ إذا كان المتغير
message
أو سلسلة الأحرف المحدَّدة في عنصر <Source>
لسياسة تحويل XSL هو:
- خارج النطاق (غير متوفّر في المسار المحدّد الذي يتم تنفيذ السياسة فيه)
- يتعذّر حلّها (غير محدَّد)
على سبيل المثال، يحدث هذا الخطأ إذا كان من المفترض تنفيذ سياسة تحويل XSL
في مسار الطلب، ولكن تم ضبط عنصر <Source>
على متغيّر الاستجابة،
الذي لا يتوفّر في مسار الطلب.
التشخيص
حدِّد سياسة تحويل XSL التي حدث فيها الخطأ واسمvariabile الذي لا يتوفّر. يمكنك العثور على كلا العنصرَين في عنصر
faultstring
في استجابة الخطأ. على سبيل المثال، في الرمز التاليfaultstring
، اسم السياسة هوxslt
والمتغيّر هوresponse
:faultstring": "response message is not available for XSL: xslt
في ملف XML لسياسة تحويل XSL التي تعذّر تنفيذها، تأكَّد من أنّ اسم المتغيّر الذي تم ضبطه في عنصر
<Source>
يتطابق مع اسم المتغيّر الذي تم تحديده في سلسلة التحقّق من الأخطاء (الخطوة 1 أعلاه). على سبيل المثال، تحدد سياسة تحويل XSL التالية متغيرًا اسمهresponse
في العنصر<Source>
، والذي يطابق ما في سلسلة الخطأ:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XSL async="false" continueOnError="false" enabled="true" name="xslt"> <DisplayName>xslt</DisplayName> <Properties/> <ResourceURL>xsl://XSL-Transform.xsl</ResourceURL> <Source>response</Source> <Parameters ignoreUnresolvedVariables="false"/> <OutputVariable/> </XSL>
حدد ما إذا كان المتغير المستخدم في العنصر
<Source>
محددًا ومتاحًا في التدفق الذي يتم فيه تنفيذ سياسة تحويل XSL.إذا كان المتغيّر:
- خارج النطاق (غير متوفّر في العملية المحدّدة التي يتم تنفيذ السياسة فيها)
- لا يمكن حلّه (لم يتم تحديده)
هذا هو سبب الخطأ.
على سبيل المثال، لنفترض أنّه من المفترض أن تتم تنفيذ سياسة تحويل XSL الموضّحة أعلاه في عملية معالجة الطلب. تذكَّر أنّه يتم استخدام المتغيّر
response
في عنصر<Source>
من نموذج السياسة. لا يتوفّر المتغيّرresponse
سوى في مسار الردّ.بما أنّ المتغيّر
response
غير متوفّر في عملية تقديم الطلب، ستتلقّى رمز الخطأ:steps.xsl.XSLSourceMessageNotAvailable
الدقة
تأكَّد من أنّ المتغيّر الذي تم ضبطه في عنصر <Source>
من سياسة XSL Transform
التي تعذّر تنفيذها محدّد ومتوفّر في العملية التي يتم تنفيذ السياسة فيها.
لتصحيح مثال سياسة تحويل XSL المعروض أعلاه، يمكنك تعديل العنصر
<Source>
لاستخدام المتغيّر request
، لأنّه متوفّر في تدفق
الطلب:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XSL async="false" continueOnError="false" enabled="true" name="xslt">
<DisplayName>xslt</DisplayName>
<Properties/>
<ResourceURL>xsl://XSL-Transform.xsl</ResourceURL>
<Source>request</Source>
<Parameters ignoreUnresolvedVariables="false"/>
<OutputVariable/>
</XSL>
XSLEvaluationFailed
رمز الخطأ
steps.xsl.XSLEvaluationFailed
نص الاستجابة للخطأ
{
"fault": {
"faultstring": "Evaluation of XSL <var>XSL_file_name</var> failed with reason: \"<var>reason_for_failure</var>",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
مثال على رسالة الخطأ
{
"fault": {
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possibly around char 0)\"",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
الأسباب المحتملة
يحدث هذا الخطأ في الحالات التالية:
- حمولة XML التي تم إدخالها غير متاحة أو مشوهة.
- يخفق/يتعذر تحويل سياسة WebRTC إلى تنسيق XML الذي يتم إدخاله استنادًا إلى قواعد التحويل المقدمة في ملف XSL. قد تكون هناك العديد من الأسباب المختلفة لفشل سياسة WebRTC. سيقدّم سبب تعذُّر الإجراء في رسالة الخطأ مزيدًا من المعلومات عن السبب. يسرد الجدول التالي أحد أسباب هذا الفشل - البادئة غير صالحة - وتم شرحه بمثال.
السبب | الوصف |
---|---|
لم تتوفّر حمولة XML للتحميل | لم يتم تمرير الحمولة XML التي تم إدخالها أو كانت فارغة. |
تنسيق XML الخاص بالمدخلات تالف | حمولة XML التي تم إدخالها غير صالحة أو تم تنسيقها بشكلٍ غير صحيح. |
بادئة غير صالحة | تحتوي الحمولة بتنسيق XML على بادئة غير محدّدة في ملف XSL. |
السبب: لا تتوفّر حمولة XML المُدخلة
يحدث هذا الخطأ إذا لم يتم تمرير الحمولة XML المُدخلة أو إذا كانت الحمولة XML التي تم تمريرها كجزء من طلب واجهة برمجة التطبيقات إلى وكيل واجهة برمجة التطبيقات الذي يتضمّن سياسة XSLTransform فارغة.
مثال على رسالة الخطأ
{
"fault": {
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possibly around char 0)\"",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
التشخيص
حدِّد ملف XSL الذي تعذّر تقييمه من خلال سياسة تحويل XML وسبب تعذُّر التقييم. إذا لم يتم تمرير الحمولة XML للدخل أو كانت فارغة، سيشير سبب الخطأ إلى أنّه تم إنهاء المستند مبكرًا أثناء التحليل. يمكنك العثور على كل هذه المعلومات في
faultstring
عنصر استجابة الخطأ. على سبيل المثال، فيfaultstring
التالي، ملف XSL هوXSL-Transform.xsl
، وسبب الخطأ هوPremature end of document while parsing at line 1 (possibly around char 0)
. يعني هذا الخطأ أنّه لم يتم تمرير الحمولة بتنسيق XML أو أنّها فارغة."faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possibly around char 0)\""
حدِّد ما إذا كانت حمولة XML التي تم تمريرها كجزء من الطلب of فارغة. إذا لم يتم تمرير الحمولة البرمجية للإدخال أو كانت فارغة، هذا هو سبب حدوث الخطأ.
في مثال الطلب أدناه، كانت حمولة الطلب (أي نص الطلب) التي أرسلها المستخدم فارغة.
على سبيل المثال:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml"
لأنّ حمولة إدخال XML فارغة، ستظهر لك رسالة الخطأ التالية:
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possibly around char 0)\""
الدقة
تأكَّد من أنّ الإدخال الذي تم تمريره إلى سياسة XSLTransform هو حمولة XML صالحة وليست فارغة.
لحلّ المشكلة في نموذج سياسة XSLTransform، يجب تمرير حمولة XML صالحة. على سبيل المثال:
أنشئ ملفًا باسم
city.xml
يتضمّن المحتوى التالي:<?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode> </root>
يمكنك إجراء طلب البيانات من واجهة برمجة التطبيقات باستخدام أمر cURL على النحو التالي:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml
السبب: ملف XML للإدخال بتنسيق غير صحيح
الحمولة XML التي تم تمريرها كجزء من طلب البيانات من واجهة برمجة التطبيقات إلى سياسة XSLTransform غير صالحة أو تم تنسيقها بشكلٍ غير صحيح.
مثال على رسالة الخطأ
{
"fault": {
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while looking for open tag ('<') character\"",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
التشخيص
حدِّد ملف XSL الذي تعذّر تقييمه من خلال سياسة تحويل XML وسبب تعذّر التقييم. إذا كانت حمولة XML المُدخلة غير صحيحة، سيشير سبب الإخفاق إلى وجود حرف غير متوقع. يمكنك العثور على كل هذه المعلومات في عنصر
faultstring
من استجابة الخطأ. على سبيل المثال، فيfaultstring
التالي، ملف XSL هوXSL-Transform.xsl
، وسبب التعذُّر هوUnexpected char while looking for open tag ('<') character
. وهذا يعني أنّ العنصر "<
" غير متوفّر في الحمولة بتنسيق XML."faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while looking for open tag ('<') character\""
راجِع حمولة XML التي تم تمريرها إلى سياسة XSLTransform لمعرفة ما إذا كانت تحتوي على محتوى XML صالح أم لا. إذا كانت حمولة البيانات المُدخلة غير صالحة بتنسيق XML، يكون هذا هو سبب الخطأ.
في مثال الطلب أدناه، كانت حمولة الإدخال (أي محتوى الطلب) التي أرسلها المستخدم غير صالحة.
على سبيل المثال:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml
مكان
city.xml
:{ "City": "Bengaluru", "Name": "Apigee", "Pincode": "560016" }
بما أنّ الحمولة المُدخلة هي JSON وليست XML صالحة، يظهر لك الخطأ التالي:
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while looking for open tag ('<') character\""
الدقة
تأكد من أن الإدخال الذي تم تمريره إلى سياسة WebRTCransform يمثل حمولة بيانات بتنسيق XML صالحة وغير فارغ.
لحلّ المشكلة في نموذج سياسة XSLTransform، يجب تمرير حمولة XML صالحة. على سبيل المثال:
عدِّل الملف
city.xml
ليكون المحتوى بتنسيق XML كما هو موضّح أدناه:<?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode> </root>
يمكنك إجراء طلب البيانات من واجهة برمجة التطبيقات باستخدام الأمر cURL على النحو التالي:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml
السبب: بادئة غير صالحة
تحتوي الحمولة XML المُدخلة التي تم تمريرها إلى سياسة XSLTransform على عنصر لم يتم تحديده كبادئة في ملف XSL المحدَّد في السياسة.
مثال على رسالة الخطأ
{
"fault": {
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unresolved Prefix at line 1(possibly around char 270)\"",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
التشخيص
حدِّد ملف XSL الذي تعذّر تقييمه من خلال سياسة تحويل XML وسبب تعذُّر التقييم. في هذه الحالة، سيشير سبب الخطأ إلى أنّ هناك بادئة لم يتم حلّها في رقم سطر معيّن في حمولة XML الإدخال. يمكنك العثور على كل هذه المعلومات في العنصر
faultstring
الخاص باستجابة الخطأ. على سبيل المثال، فيfaultstring
التالي، يكون ملف XSL هوXSL-Transform.xsl
، وسبب تعذّر ذلك هوUnresolved Prefix
ورقم السطر1
."faultstring":"Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unresolved Prefix at line 1(possibly around char 270)\""
افحص محتوى ملف XSL (المحدّد في الخطوة رقم 1 أعلاه) وحمولة XML. إذا لم تكن البادئة المستخدَمة في رقم السطر (الذي تم تحديده في الخطوة رقم 1 أعلاه) من ملف XML المُدخل (الذي يمثّل الحمولة) متوفّرة في ملف XSL، هذا يعني أنّها سبب الخطأ.
في ما يلي نموذج XSL وحمولة XML المقابلة التي تؤدي إلى الخطأ:
XSL-Transform.xsl <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>
إدخال الحمولة بتنسيق XML
<?xml version="1.0"?> <Life:Books> <title>A few of my favorite albums</title> <listitem>Beat Crazy</listitem> <listitem>Here Come the Warm Jets</listitem> <listitem>Kind of Blue</listitem> <listitem>London Calling</listitem> </Life:Books>
يحتوي مثال حمولة البيانات بتنسيق XML المعروض أعلاه على عنصر
<Life:Books>
. يُرجى ملاحظة أنّ ملف XSL لا يحتوي على هذه البادئة. ولكن بدلاً من ذلك، تم إدراج البادئة على النحو التالي:<xsl:text><Life></xsl:text>
. وبالتالي، تظهر لك رسالة الخطأ التالية:"faultstring":"Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unresolved Prefix at line 1(possibly around char 270)\""
الدقة
تأكد من أن حمولة بيانات XML المدخلة التي تم تمريرها إلى سياسة WebRTCransform تحتوي على جميع تنسيقات العناصر المحددة كبادئات في ملف XSL المستخدم في السياسة.
لحلّ مشكلة نموذج ملف XML المعروض أعلاه، يمكنك تعديل الملف على النحو الموضّح أدناه:
حمولة XML المعدَّلة للبيانات المُدخلة
<?xml version="1.0"?>
<Life>
<title>A few of my favorite albums</title>
<listitem>Beat Crazy</listitem>
<listitem>Here Come the Warm Jets</listitem>
<listitem>Kind of Blue</listitem>
<listitem>London Calling</listitem>
</Life>