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

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

EitherOptionOrFormat

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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'de <Options> veya <Format> öğelerinden biri JSON Politikası'na bildirilmezse 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 ilgili API proxy'sinde tüm XML - JSON politikalarını inceleyin. <Options> veya <Format> öğelerinden birinin bildirilmediği bir JSON - JSON 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 - 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 management API üzerinden dağıtılması şu hata mesajını gösterir:

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'ye politikası içindeki <Format> öğesi için bilinmeyen biçim tanımlanmışsa 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 - JSON 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 - JSON politikası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 politika biçimi, hata mesajındakiyle eşleşen google.com olarak belirtir:

    <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 Politikası'na, biçim geçersiz olan google.com şeklindedir. Bu nedenle, API Proxy'sinin dağıtımı şu hatayla başarısız olur:

    XMLToJSON[WithFormat]: Unknown Format google.com.
    

Çözünürlük

XML'den JSON'ye politikasının <Format> öğesinde belirtilen biçimin belirtildiğinden emin olun geçerlidir. Ö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>