Solução de problemas de erro na implantação da política XML para JSON

Esta é a documentação da Apigee e da Apigee híbrida.
Confira a documentação da Apigee Edge.

EitherOptionOrFormat

Mensagem de erro

A implantação do proxy de API pela IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de erro

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

Exemplo de captura de tela

Mensagem de erro informando que as opções ou o formato precisam ser especificados.

Causa

Se um dos elementos <Options> ou <Format> não for declarado na política XML para JSON, a implantação do proxy de API falhará.

<Options> será necessário se <Format> não for usado.

Use o elemento <Format> ou o grupo de elementos <Options>. Não é possível usar <Format> e <Options> ao mesmo tempo. Os formatos predefinidos incluem: xml.com, yahoo, google e badgerFish.

Diagnóstico

  1. Examine todas as políticas XML para JSON no proxy de API específico em que a falha ocorreu. Se houver alguma política XML para JSON em que um dos elementos <Options> ou <Format> não seja declarado, essa será a causa do erro.

    Por exemplo, a política a seguir não tem um dos elementos declarado:

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

Resolução

Verifique se o XML da política XML para JSON tem um dos elementos <Options> ou <Format> declarado na política.

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

Exemplo 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

Mensagem de erro

A implantação do proxy de API pela IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de erro

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

Exemplo de captura de tela

Mensagem de erro de formato desconhecida.

Causa

Se o elemento <Format> na política XML para JSON tiver um formato desconhecido, a implantação do proxy da API falhará.

Os formatos predefinidos incluem: xml.com, yahoo, google e badgerFish.

Diagnóstico

  1. Identifique a política XML para JSON em que ocorreu o erro e o formato desconhecido. Você encontra essas informações na mensagem de erro. Por exemplo, no erro a seguir, o nome da política é WithFormat e o formato desconhecido é google.com:

    Error Saving Revision 1
    XMLToJSON[WithFormat]: Unknown Format google.com.
    
  2. Verifique se o formato desconhecido especificado na política XML para JSON de falha corresponde ao valor identificado na mensagem de erro (etapa 1 acima). Por exemplo, a seguinte política especifica o formato como google.com, que corresponde ao que está na mensagem de erro:

    <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. Se o formato especificado não estiver entre os formatos predefinidos xml.com, yahoo, google ou badgerFish, essa será a causa do erro.

    No exemplo de política XML para JSON mostrado acima, o formato é google.com, que é inválido. Portanto, a implantação do proxy de API falhará com o erro:

    XMLToJSON[WithFormat]: Unknown Format google.com.
    

Resolução

Verifique se o formato especificado no elemento <Format> da política XML para JSON é válido. Exemplo:

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