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

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

EitherOptionOrFormat

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge yönetim API'si üzerinden dağıtımı ş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

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

<Format> kullanılmıyorsa <Options> gereklidir.

<Format> öğesini veya <Options> öğe grubunu kullanın. <Format> ve <Options> birlikte kullanılamaz. Önceden tanımlanmış biçimler şunlardır: xml.com, yahoo, google ve badgerFish.

Teşhis

  1. Hatanın oluştuğu API proxy'sindeki tüm XML'den JSON'a politikalarını inceleyin. <Options> veya <Format> öğelerinden birinin bildirilmediği herhangi bir XML - JSON politikası varsa hatanın nedeni budur.

    Örneğin, aşağıdaki politikada bu öğelerden hiçbiri tanımlanmamıştır:

    <?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 - JSON politikası XML dosyasının, politikada belirtilen <Options> veya <Format> öğelerinden birine sahip olduğ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 yönetim API'si üzerinden dağıtımı ş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 politikasındaki <Format> öğesinde tanımlanan biçim bilinmiyorsa API proxy'sinin dağıtımı başarısız olur.

Önceden tanımlanmış biçimler şunlardır: xml.com, yahoo, google ve badgerFish.

Teşhis

  1. Hatanın oluştuğu XML'den JSON'a politika ve bilinmeyen biçimi belirleyin. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı WithFormat ve bilinmeyen biçim google.com'tır:

    Error Saving Revision 1
    XMLToJSON[WithFormat]: Unknown Format google.com.
    
  2. Başarısız XML'den JSON'a politikalarında belirtilen bilinmeyen biçimin, hata mesajında tanımlanan değerle eşleştiğini doğrulayın (yukarıdaki 1. adım). Örneğin, aşağıdaki politikada biçim google.com olarak belirtilmiştir. Bu, hata mesajındakiyle eşleşir:

    <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ış biçimler xml.com, yahoo, google veya badgerFish arasından biri değilse hatanın nedeni budur.

    Yukarıda gösterilen XML'den JSON'a politika örneğinde, biçim google.com şeklindedir ve geçersizdir. 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 politikanı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>