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

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

Либоварианторформат

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

Развертывание прокси-сервера 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>

Неизвестный формат

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

Развертывание прокси-сервера 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 to 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>