عیب یابی خطای زمان اجرا خط مشی XML به JSON

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

منبع در دسترس نیست

کد خطا

steps.xml2json.SourceUnavailable

بدنه پاسخ به خطا

{
    "fault": {
        "faultstring": "XMLToJSON[policy_name]: Source [source_variable] is not available",
        "detail": {
            "errorcode": "steps.xmltojson.SourceUnavailable"
        }
    }
}

نمونه پیام خطا

{
    "fault": {
        "faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available",
        "detail": {
            "errorcode": "steps.xml2json.SourceUnavailable"
        }
    }
}

علت

اگر پیام یا متغیر رشته ای که در عنصر <Source> خط مشی XML به JSON مشخص شده است، این خطا رخ می دهد:

  • خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست) یا
  • قابل حل نیست (تعریف نشده است)

به عنوان مثال، اگر قرار باشد خط مشی XML به JSON در جریان درخواست اجرا شود، این خطا رخ می دهد، اما عنصر <Source> روی متغیر response تنظیم شده است که در جریان درخواست وجود ندارد.

تشخیص

  1. خط مشی XML به JSON را که در آن خطا رخ داده است و نام متغیری که در دسترس نیست شناسایی کنید. شما می توانید هر دوی این موارد را در عنصر faultstring پاسخ خطا پیدا کنید. به عنوان مثال، در faultstring زیر، نام خط مشی Convert-XMLToJSON و متغیر response است:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available"
    
  2. در XML خط مشی XML به JSON ناموفق، بررسی کنید که نام متغیر مجموعه در عنصر <Source> با نام متغیر شناسایی شده در رشته خطا مطابقت داشته باشد (مرحله شماره 1 در بالا). به عنوان مثال، خط مشی زیر XML به JSON یک response به نام متغیر را در عنصر <Source> مشخص می کند که با آنچه در faultstring است مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
        <DisplayName>Convert-XMLToJSON</DisplayName>
        <Properties/>
        <Format>google</Format>
        <OutputVariable>response</OutputVariable>
        <Source>response</Source>
    </XMLToJSON>
    
  3. تعیین کنید که آیا متغیر مورد استفاده در عنصر <Source> در جریانی که خط مشی XML به JSON در آن اجرا می شود، تعریف شده و در دسترس است یا خیر.

  4. اگر متغیر یکی از این موارد باشد:

    • خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست) یا
    • قابل حل نیست (تعریف نشده است)

    پس این دلیل خطا است.

    به عنوان مثال، فرض کنید سیاست XML به JSON نشان داده شده در بالا قرار است در جریان درخواست اجرا شود. به یاد بیاورید که متغیر response در عنصر <Source> خط مشی XML به JSON استفاده می شود. متغیر پاسخ فقط در جریان پاسخ موجود است.

    از آنجایی که متغیر پاسخ در جریان درخواست وجود ندارد، کد خطا را دریافت می کنید:

    steps.xml2json.SourceUnavailable
    

قطعنامه

اطمینان حاصل کنید که مجموعه متغیر در عنصر <Source> خط مشی ناموفق XML به JSON، تعریف شده است و در جریانی که خط مشی اجرا می شود وجود دارد.

برای اصلاح مثال XML به خط مشی JSON نشان داده شده در بالا، می توانید عنصر <Source> را تغییر دهید تا از متغیر request همانطور که در جریان درخواست وجود دارد استفاده کنید:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
    <DisplayName>Convert-XMLToJSON</DisplayName>
    <Properties/>
    <Format>google</Format>
    <OutputVariable>response</OutputVariable>
    <Source>request</Source>
</XMLToJSON>

اجرا ناموفق بود

کد خطا

steps.xml2json.ExecutionFailed

بدنه پاسخ به خطا

{
    "fault": {
        "faultstring": "XMLToJSON[policy_name]: Execution failed. reason: Premature end of document while parsing at line [line_number](possibly  around char [character_number])",
        "detail": {
            "errorcode": "steps.xml2json.ExecutionFailed"
        }
    }
}

علل احتمالی

دلایل احتمالی این خطا عبارتند از:

علت توضیحات
محموله ورودی وجود ندارد محموله ورودی (XML) خالی است.
ورودی نامعتبر یا نادرست ورودی (XML) ارسال شده به خط مشی XML به JSON نامعتبر یا نادرست است.

علت: از دست رفتن بار ورودی

در خط مشی XML به JSON اگر محتوای (بارگذاری بار) متغیر مشخص شده در عنصر <Source> خالی باشد، این خطا رخ می دهد.

برای مثال، اگر عنصر <Source> در خط‌مشی XML به JSON به‌عنوان متغیر request یا response تنظیم شده باشد و قرار باشد حاوی یک بار XML باشد، اگر بار خالی باشد، این خطا رخ می‌دهد.

تشخیص

  1. خط مشی XML به JSON را در جایی که خطا رخ داده است شناسایی کنید. شما می توانید این اطلاعات را در عنصر faultstring پاسخ خطا پیدا کنید. به عنوان مثال، در faultstring زیر، نام خط مشی Convert-XMLToJSON است:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 1(possibly  around char 0)"
    
  2. عنصر <Source> را در خط مشی XML به JSON که ناموفق است بررسی کنید و متغیر مشخص شده را تعیین کنید. برای مثال، خط مشی زیر XML به JSON دارای عنصر <Source> برای درخواست است:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
        <DisplayName>Convert-XMLToJSON</DisplayName>
        <Properties/>
        <Options>
            <RecognizeNumber>true</RecognizeNumber>
            <RecognizeBoolean>true</RecognizeBoolean>
            <RecognizeNull>true</RecognizeNull>
        </Options>
        <OutputVariable>request</OutputVariable>
        <Source>request</Source>
    </XMLToJSON>
    
  3. بررسی کنید که آیا متغیر مشخص شده برای عنصر <Source> در خط مشی XMLToJSON خالی است یا خیر. اگر خالی است، دلیل این خطا است.

    در مثال خط مشی XML به JSON نشان داده شده در بالا، بار درخواستی (یعنی بدنه درخواست) که توسط مشتری ارسال شده بود خالی بود.

    به عنوان مثال:

    curl -v "http://<org>-<env>.apigee.net/v1/testxmltojson" -H "Content-Type: application/xml"
    

    از آنجایی که بار درخواست XML خالی است، کد خطا را دریافت می کنید:

    steps.xml2json.ExecutionFailed
    

    این خطا همچنین می تواند رخ دهد اگر عنصر <Source> روی پاسخ تنظیم شده باشد، اما یک بار خالی توسط سرور backend ارسال شود.

قطعنامه

اطمینان حاصل کنید که ورودی ارسال شده به خط مشی XML به JSON از طریق عنصر <Source> یک بار XML معتبر و غیرخالی است.

برای رفع مشکل نمونه خط مشی XML به JSON، یک بار XML معتبر ارسال کنید. به عنوان مثال:

  1. یک فایل با نام city.xml با محتوای زیر ایجاد کنید:

    <?xml version="1.0" encoding="UTF-8"?>
    <root>
       <City>Bengaluru</City>
       <Name>Apigee</Name>
       <Pincode>560016</Pincode>
    </root>
    
  2. تماس API را با استفاده از دستور cURL به صورت زیر انجام دهید:

    curl -v "http://<org>-<env>.apigee.net/v1/testxmltojson" -H "Content-Type: application/xml" -X POST -d @company.xml
    

علت: ورودی نامعتبر یا نادرست

اگر خط مشی XML به JSON ورودی نامعتبر یا نادرست را تجزیه می کند، این خطا را دریافت می کنید.

به عنوان مثال، اگر XML نامعتبر زیر به عنوان ورودی خط مشی XML به JSON ارائه شود،

<?xml version="1.0" encoding="UTF-8"?>
<root>
   <City>Bengaluru</City>
   <Name>Apigee</Name>
   <Pincode>560016</Pincode>

خطا را دریافت خواهید کرد:

"faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 6(possibly  around char 0)"

تشخیص

  1. خط مشی XML به JSON را در جایی که خطا رخ داده است شناسایی کنید. شما می توانید این اطلاعات را در عنصر faultstring پاسخ خطا پیدا کنید. به عنوان مثال، در faultstring زیر، نام خط مشی Convert-XMLToJSON است:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 6(possibly  around char 0)"
    
  2. عنصر <Source> مشخص شده در خط مشی XML XML به JSON را بررسی کنید. برای مثال، خط مشی زیر XML به JSON دارای عنصر <Source> روی متغیر request است:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
        <DisplayName>Convert-XMLToJSON</DisplayName>
        <Properties/>
        <Options>
            <RecognizeNumber>true</RecognizeNumber>
            <RecognizeBoolean>true</RecognizeBoolean>
            <RecognizeNull>true</RecognizeNull>
        </Options>
        <OutputVariable>request</OutputVariable>
        <Source>request</Source>
    </XMLToJSON>
    
  3. اگر ورودی مشخص شده در عنصر <Source> خط مشی XML To JSON یک بار XML معتبر است، اعتبار سنجی کنید. اگر ورودی نامعتبر یا نادرست باشد، دلیل این خطا است.

    در مثال خط مشی XML به JSON نشان داده شده در بالا، XML نامعتبر زیر از طریق فایل city.xml به خط مشی Extract Variables منتقل شد:

    <?xml version="1.0" encoding="UTF-8"?>
    <root>
       <City>Bengaluru</City>
       <Name>Apigee</Name>
       <Pincode>560016</Pincode>
    

    در اینجا نمونه فراخوانی API است که نحوه ارسال درخواست را نشان می دهد:

    curl -v "http://<org>-<env>.apigee.net/v1/testxmltpjson" -H "Content-Type: application/xml" -X POST -d @city.xml
    

    محموله XML ارسال شده به API نامعتبر است، زیرا XML تگ پایانی برای عنصر <root> ندارد. بنابراین کد خطا را دریافت می کنید:

    steps.xml2json.ExecutionFailed
    

    اگر عنصر <Source> روی پاسخ تنظیم شده باشد اما بار پاسخ XML از سرور باطن نامعتبر یا نادرست باشد، این خطا ممکن است رخ دهد.

قطعنامه

اطمینان حاصل کنید که ورودی ارسال شده به خط مشی XML به JSON از طریق عنصر <Source> معتبر است و دارای شکل نادرستی نیست.

برای رفع مشکل نمونه خط مشی XML به JSON که در بالا توضیح داده شد، یک درخواست معتبر XML payload را به شرح زیر ارسال کنید:

<?xml version="1.0" encoding="UTF-8"?>
<root>
   <City>Bengaluru</City>
   <Name>Apigee</Name>
   <Pincode>560016</Pincode>
</root>

OutputVariableIsNotAvailable

کد خطا

steps.xml2json.OutputVariableIsNotAvailable

بدنه پاسخ به خطا

{
    "fault": {
        "faultstring": "XMLToJSON[policy_name]: Output variable is not available.",
        "detail": {
            "errorcode": "steps.xml2json.OutputVariableIsNotAvailable"
        }
    }
}

نمونه پیام خطا

{
    "fault": {
        "faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available.",
        "detail": {
            "errorcode": "steps.xml2json.OutputVariableIsNotAvailable"
        }
    }
}

علت

اگر متغیر مشخص شده در عنصر <Source> خط مشی XML به JSON از نوع string باشد و عنصر <OutputVariable> تعریف نشده باشد، این خطا رخ می دهد. عنصر <OutputVariable> زمانی اجباری است که متغیر تعریف شده در عنصر <Source> از نوع string باشد.

تشخیص

  1. خط مشی XML به JSON را در جایی که خطا رخ داده است شناسایی کنید. این را می توانید در عنصر faultstring پاسخ خطا پیدا کنید. به عنوان مثال، در faultstring زیر، نام خط مشی Convert-XMLToJSON است:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available."
    
  2. در خط مشی XML به JSON ناموفق، اگر <OutputVariable> موجود نباشد، اعتبارسنجی کنید.

    در اینجا یک نمونه از خط مشی XML به JSON است که عنصر <OutputVariable> را ندارد.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
        <DisplayName>Convert-XMLToJSON</DisplayName>
        <Properties/>
        <Format>google</Format>
        <Source>TrackingNumber</Source>
    </XMLToJSON>
    
    
  3. نوع متغیر مشخص شده در عنصر <Source> را تعیین کنید:

    1. کد را در بسته API Proxy، جایی که متغیر ابتدا تعریف شده است، قرار دهید.
    2. هنگامی که سیاستی را که ابتدا متغیر در آن تعریف و پر شده است، مشخص کردید، باید نوع آن متغیر را به صورت زیر تعیین کنید:
      1. مقدار ویژگی type (در صورت وجود) را بررسی کنید.
      2. اگر ویژگی type وجود نداشته باشد، متغیر به عنوان یک رشته در نظر گرفته می شود.
    3. اگر نوع متغیر string است، پس دلیل خطا همین است. در مرجع Variables می توانید با متغیرهای رایج و انواع آنها آشنا شوید.

    به عنوان مثال، به متغیر TrackingNumber در خط مشی XML به JSON بالا نگاه کنید. از نوع رشته است. اکنون، یک خط مشی Assign Message را در نظر بگیرید که برای تنظیم مقدار متغیری به نام TrackingNumber استفاده می شود، همانطور که در زیر نشان داده شده است:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_TrackingNumber">
        <DisplayName>Assign_TrackingNumber</DisplayName>
        <Properties/>
        <AssignVariable>
            <Name>TrackingNumber</Name>
            <Value><![CDATA[<Code>560075393539898</Code>]]></Value>
            <Ref/>
        </AssignVariable>
        <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
        <AssignTo createNew="false" transport="http" type="request"/>
    </AssignMessage>
    

    توجه داشته باشید که نوع متغیر تنظیم شده از طریق <AssignVariable> رشته است. بنابراین متغیر TrackingNumber از نوع رشته است.

    اکنون، به یاد بیاورید که متغیر TrackingNumber در عنصر <Source> خط مشی XML To JSON استفاده می شود:

    <Source>TrackingNumber</Source>
    

    از آنجایی که TrackingNumber از نوع رشته ای است و <OutputVariable> در خط مشی وجود ندارد، کد خطا را دریافت می کنید:

    steps.xml2json.OutputVariableIsNotAvailable
    

قطعنامه

اطمینان حاصل کنید که اگر متغیر مشخص شده در عنصر <Source> سیاست XMLToJSON از نوع رشته باشد، عنصر <OutputVariable> در این مورد اجباری است.

برای تصحیح خط مشی XML به JSON که در بالا توضیح داده شد، عنصر <OutputVariable> را مطابق شکل زیر وارد کنید.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
    <DisplayName>Convert-XMLToJSON</DisplayName>
    <Properties/>
    <Format>google</Format>
    <OutputVariable>response</OutputVariable>
    <Source>TrackingNumber</Source>
</XMLToJSON>

انواع ناسازگار

کد خطا

steps.xml2json.InCompatibleTypes

بدنه پاسخ به خطا

{
    "fault": {
        "faultstring": "XMLToJSON[policy_name]: String can not be assigned to message type.",
        "detail": {
            "errorcode": "steps.xml2json.InCompatibleTypes"
        }
    }
}

نمونه پیام خطا

{
    "fault": {
        "faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type.",
        "detail": {
            "errorcode": "steps.xml2json.InCompatibleTypes"
        }
    }
}

علت

این خطا در صورتی رخ می دهد که نوع متغیر تعریف شده در عنصر <Source> و عنصر <OutputVariable> یکسان نباشد. اجباری است که نوع متغیرهای موجود در عنصر <Source> و عنصر <OutputVariable> مطابقت داشته باشد.

The valid types are message and string.

تشخیص

  1. خط مشی XML به JSON را در جایی که خطا رخ داده است شناسایی کنید. این را می توانید در عنصر faultstring پاسخ خطا پیدا کنید. به عنوان مثال، در faultstring زیر، نام خط مشی XMLToJSON_CheckType است:

    "faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type."
    
  2. در خط مشی XML به JSON ناموفق، مقادیر مشخص شده در <OutputVariable> را یادداشت کنید.

    در اینجا یک نمونه از سیاست XMLToJSON است که عنصر <OutputVariable> را ندارد

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON_CheckType">
        <DisplayName>XMLToJSON_CheckType</DisplayName>
        <Properties/>
        <Format>google</Format>
        <OutputVariable>request</OutputVariable>
        <Source>TrackingNumber</Source>
    </XMLToJSON>
    
  3. نوع متغیر مشخص شده در عناصر <Source> و <OutputVariable> را تعیین کنید:

    1. کد را در بسته API Proxy قرار دهید، جایی که هر یک از این متغیرها ابتدا تعریف شده اند.
    2. هنگامی که سیاستی را که ابتدا متغیر در آن تعریف و پر شده است، مشخص کردید، باید نوع آن متغیر را به صورت زیر تعیین کنید:
      1. مقدار ویژگی type (در صورت وجود) را بررسی کنید.
      2. اگر ویژگی type وجود نداشته باشد، متغیر به عنوان یک رشته در نظر گرفته می شود.
    3. اگر نوع متغیر مشخص شده در <Source> string باشد در حالی که نوع <OutputVariable> پیام است یا برعکس، آنگاه علت خطا همین است. در مرجع Variables می توانید با متغیرهای رایج و انواع آنها آشنا شوید.

    به عنوان مثال، یک خط مشی Assign Message را در نظر بگیرید که برای تنظیم مقدار متغیری به نام TrackingNumber استفاده می شود، همانطور که در زیر نشان داده شده است:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_TrackingNumber">
        <DisplayName>Assign_TrackingNumber</DisplayName>
        <Properties/>
        <AssignVariable>
            <Name>TrackingNumber</Name>
            <Value><![CDATA[<Code>560075393539898</Code>]]></Value>
            <Ref/>
        </AssignVariable>
        <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
        <AssignTo createNew="false" transport="http" type="request"/>
    </AssignMessage>
    

    توجه داشته باشید که نوع متغیر تنظیم شده از طریق <AssignVariable> رشته است. بنابراین متغیر TrackingNumber از نوع رشته است.

    اکنون، به یاد بیاورید که متغیر TrackingNumber در عنصر <Source> خط مشی XMLToJSON استفاده می شود:

    <Source>TrackingNumber</Source>
    

    به طور مشابه، به یاد بیاورید که متغیر request در عنصر <OutputVariable> خط مشی XML به JSON استفاده می شود:

    <OutputVariable>request</OutputVariable>
    

    از آنجا که TrackingNumber از نوع string است در حالی که متغیر response از نوع message است، آنها انواع ناسازگار هستند بنابراین کد خطا را دریافت می کنید:

    steps.xml2json.InCompatibleTypes
    

    اگر متغیر موجود در عنصر <Source> از نوع message باشد، اما متغیر موجود در عنصر <OutputVariable> از نوع رشته باشد، خطای فوق می تواند رخ دهد.

قطعنامه

اطمینان حاصل کنید که نوع متغیر تعریف شده در عنصر <Source> و عنصر <OutputVariable> همیشه یکسان هستند. اجباری است که نوع متغیرهای موجود در عنصر <Source> و عنصر <OutputVariable> مطابقت داشته باشد.

برای تصحیح خط‌مشی XML به JSON که در بالا توضیح داده شد، می‌توانید متغیر دیگری TrackingNumber_output از نوع string با استفاده از Assign Message Policy اعلام کنید و از این متغیر در عنصر <OutputVariable> سیاست XML به JSON استفاده کنید.

تغییر خط مشی پیام اختصاص دادن:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_TrackingNumber">
    <DisplayName>Assign_TrackingNumber</DisplayName>
    <Properties/>
    <AssignVariable>
        <Name>TrackingNumber</Name>
        <Value><![CDATA[<Code>560098</Code>]]></Value>
        <Ref/>
    </AssignVariable>
    <AssignVariable>
        <Name>TrackingNumber_output</Name>
        <Ref/>
    </AssignVariable>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

سیاست XMLToJSON اصلاح شده:

  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON_CheckType">
      <DisplayName>XMLToJSON_CheckType</DisplayName>
      <Properties/>
      <Format>google</Format>
      <OutputVariable>TrackingNumber_output</OutputVariable>
      <Source>TrackingNumber</Source>
  </XMLToJSON>

InvalidSourceType

کد خطا

steps.xml2json.InvalidSourceType

بدنه پاسخ به خطا

{
    "fault": {
        "faultstring": "XMLToJSON[class invalid_class]: Invalid source type class invalid_class. Valid source types are [message, string].",
        "detail": {
            "errorcode": "steps.xml2json.InvalidSourceType"
        }
    }
}

نمونه پیام خطا

{
    "fault": {
        "faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string].",
        "detail": {
            "errorcode": "steps.xml2json.InvalidSourceType"
        }
    }
}

علت

این خطا در صورتی رخ می دهد که نوع متغیر مورد استفاده برای تعریف عنصر <Source> نامعتبر باشد. انواع معتبر متغیر message و string هستند.

تشخیص

  1. نوع منبع نامعتبر مورد استفاده در خط مشی XML به JSON را شناسایی کنید. می توانید این اطلاعات را از پیام خطا پیدا کنید. برای مثال در خطای زیر نوع نامعتبر عدد صحیح است.

    "faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string]."
    
  2. همه خط‌مشی‌های XML به JSON را در پروکسی API خاصی که در آن خرابی رخ داده است، بررسی کنید. در خط مشی XML به JSON ناموفق، نام متغیر مشخص شده در <Source> را یادداشت کنید.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON_CheckType">
        <DisplayName>XMLToJSON_CheckType</DisplayName>
        <Properties/>
        <Format>google</Format>
        <OutputVariable>response</OutputVariable>
        <Source>BookCode</Source>
    </XMLToJSON>
    
  3. نوع متغیر مشخص شده در عنصر <Source> را تعیین کنید:

    1. کد را در بسته API Proxy، جایی که ابتدا این متغیر تعریف شده است، قرار دهید.
    2. هنگامی که سیاستی را که ابتدا متغیر در آن تعریف و پر شده است، مشخص کردید، باید نوع آن متغیر را به صورت زیر تعیین کنید:
      1. مقدار ویژگی type (در صورت وجود) را بررسی کنید.
      2. اگر ویژگی type وجود نداشته باشد، متغیر به عنوان یک رشته در نظر گرفته می شود.
    3. اگر نوع متغیر مشخص شده در <Source> نه message باشد و نه نوع string ، پس علت خطا همین است. در مرجع Variables می توانید با متغیرهای رایج و انواع آنها آشنا شوید.

    به عنوان مثال، یک خط مشی ExtractVariables را در نظر بگیرید که برای استخراج مقدار از یک بار XML استفاده می شود و مقدار متغیر BookCode از نوع integer تنظیم می کند که در زیر نشان داده شده است:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract_BookCode">
        <DisplayName>Extract_BookCode</DisplayName>
        <Properties/>
        <Source>request</Source>
        <XMLPayload stopPayloadProcessing="false">
            <Variable name="BookCode" type="integer">
                <XPath>/root/BookCode</XPath>
            </Variable>
        </XMLPayload>
    </ExtractVariables>
    

    اکنون به یاد بیاورید که متغیر BookCode در عنصر <Source> خط مشی XML To JSON استفاده می شود:

    <Source>BookCode</Source>
    

    از آنجایی که نوع این متغیر Integer است که یک نوع <Source> معتبر نیست، پروکسی API با خطای زیر خراب می شود:

    steps.xml2json.InvalidSourceType
    

قطعنامه

اطمینان حاصل کنید که نوع متغیر مورد استفاده برای تعیین عنصر <Source> معتبر است. انواع معتبر <Source> message و string هستند.

برای جلوگیری از خطای بالا با خط مشی XML به JSON، می توانید از متغیر request که از نوع message یا هر رشته دیگری است که یک بار XML معتبر است استفاده کنید.