XML'den JSON'a politika dağıtımı hatasını giderme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

EitherOptionOrFormat

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtılması şu hata mesajıyla başarısız olur:

Error Saving Revision [revision_number]
XMLToJSON[{0}]: Either Options or Format must be specified.

Örnek hata

Error Saving Revision 1
XMLToJSON[{0}]: Either Options or Format must be specified.

Örnek ekran görüntüsü

Neden

<Options> veya <Format> öğelerinden biri XML'den JSON'a Geçiş Politikası'nda tanımlanmamışsa API proxy'sinin dağıtımı başarısız olur.

<Format> kullanmıyorsanız <Options> gereklidir.

<Format> öğesini veya <Options> öğe grubunu kullanın. Hem <Format> hem de <Options> kullanılamaz. Önceden tanımlanmış biçimler şunları içerir: xml.com, yahoo, google ve badgerFish.

Teşhis

  1. Hatanın gerçekleştiği ilgili API proxy'sinde tüm XML'den JSON'a geçiş politikalarını inceleyin. <Options> veya <Format> öğelerinden birinin bildirilmediği bir XML'den JSON'a Geçiş politikası varsa hatanın nedeni budur.

    Örneğin, aşağıdaki politikada öğelerin hiçbiri beyan edilmemiştir:

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

Çözünürlük

XML to JSON politikasına ait XML'in, politikada tanımlanan <Options> veya <Format> öğelerinden birinin bulunduğundan emin olun.

1. Örnek:

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

2. Örnek:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON">
    <DisplayName>XMLToJSON</DisplayName>
    <Properties/>
    <Options>
        <RecognizeNumber>true</RecognizeNumber>
        <RecognizeBoolean>true</RecognizeBoolean>
        <RecognizeNull>true</RecognizeNull>
    </Options>
    <OutputVariable>response</OutputVariable>
    <Source>response</Source>
</XMLToJSON>

UnknownFormat

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtılması şu hata mesajıyla başarısız olur:

Error Saving Revision [revision_number]
XMLToJSON[policy_name]: Unknown Format [unknown_format].

Örnek hata

Error Saving Revision 1
XMLToJSON[WithFormat]: Unknown Format google.com.

Örnek ekran görüntüsü

Neden

XML'den JSON'a geçiş politikasındaki <Format> öğesi için bilinmeyen bir biçim tanımlanmışsa API proxy'sinin dağıtımı başarısız olur.

Önceden tanımlanmış biçimler şunları içerir: xml.com, yahoo, google ve badgerFish.

Teşhis

  1. Hatanın oluştuğu yerde XML'den JSON'a geçiş politikasını ve bilinmeyen biçimi tanımlayın. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı WithFormat, bilinmeyen biçim ise google.com şeklindedir:

    Error Saving Revision 1
    XMLToJSON[WithFormat]: Unknown Format google.com.
    
  2. Başarısız XML'den JSON'a dönüştürme politikasında belirtilen bilinmeyen biçimin, hata mesajında belirtilen değerle eşleştiğini doğrulayın (yukarıdaki 1. adım). Örneğin, aşağıdaki politikada biçim, hata mesajındaki metinle eşleşen google.com olarak belirtilmektedir:

    <XMLToJSON async="false" continueOnError="false" enabled="true" name="WithFormat">
      <DisplayName>WithFormat</DisplayName>
      <Properties/>
      <Format>google.com</Format>
      <OutputVariable>response</OutputVariable>
      <Source>response</Source>
    </XMLToJSON>
    
  3. Belirtilen Biçim önceden tanımlanmış xml.com, yahoo, google veya badgerFish biçimlerinden biri değilse hatanın nedeni budur.

    Yukarıda gösterilen örnek XML'den JSON'a Politikası'nda biçim geçersiz olan google.com şeklindedir. Bu nedenle, API Proxy'sinin dağıtımı şu hatayı vererek başarısız olur:

    XMLToJSON[WithFormat]: Unknown Format google.com.
    

Çözünürlük

XML'den JSON'a geçiş politikasının <Format> öğesinde belirtilen biçimin geçerli olduğundan emin olun. Örneğin:

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