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

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

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