Устранение неполадок при развертывании правил преобразования XML в JSON

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

EitherOptionOrFormat

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

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

Пример ошибки

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

Пример скриншота

Причина

Если один из элементов <Options> или <Format> не объявлен в правиле XML to JSON, развертывание прокси-сервера API завершится неудачно.

<Options> указывать обязательно, если <Format> отсутствует.

Используйте элемент <Format> или группу элементов <Options>. Нельзя использовать оба <Format>атрибута <Options>одновременно. К ним относятся xml.com, yahoo, google и badgerFish.

диагностика;

  1. Проверьте все правила XML в JSON в определенном прокси-сервере API, где произошел сбой. Если в правиле преобразования XML в JSON не объявлен ни один из элементов <Options> или <Format>, это и является причиной ошибки.

    Например, в следующих правилах не указан ни один из этих элементов:

    <?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>
    

Разрешение

Убедитесь, что в XML-файле правила XML в JSON объявлен один из элементов: <Options> или <Format>.

Пример 1

<?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

<?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

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

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

Пример ошибки

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

Пример скриншота

Причина

Если в элементе <Format> правила XML в JSON задан неизвестный формат, развертывание прокси-сервера API завершится неудачно.

К ним относятся xml.com, yahoo, google и badgerFish.

диагностика;

  1. Определите правило XML в JSON, в котором произошла ошибка, и неизвестный формат. Эту информацию можно найти в сообщении об ошибке. Например, в приведенной ниже ошибке название правила – WithFormat, а неизвестный формат – google.com:

    Error Saving Revision 1
    XMLToJSON[WithFormat]: Unknown Format google.com.
    
  2. Убедитесь, что неизвестный формат, указанный в XML-файле, для которого не удалось применить правило преобразования в JSON, соответствует значению, указанному в сообщении об ошибке (шаг 1 выше). Например, в следующем правиле формат указан как google.com, что соответствует формату в сообщении об ошибке:

    <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. Если указанный формат не относится к предопределенным форматам xml.com, yahoo, google или badgerFish, то это и является причиной ошибки.

    В примере XML-файла для правила преобразования в JSON, приведенном выше, используется недопустимый формат google.com. Поэтому развертывание прокси API завершается неудачно с ошибкой:

    XMLToJSON[WithFormat]: Unknown Format google.com.
    

Разрешение

Убедитесь, что формат, указанный в элементе <Format> правила XML в JSON, действителен. Пример:

<?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>