Resolução de problemas de erro de implementação de políticas de XML para JSON

Está a ver a documentação do Apigee e do Apigee Hybrid.
Ver documentação do Apigee Edge.

EitherOptionOrFormat

Mensagem de erro

A implementação do proxy de API através da IU ou da API Apigee 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.

Captura de ecrã de exemplo

Tem de especificar as opções ou o formato.

Causa

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

O campo <Options> é obrigatório se o campo <Format> não for usado.

Use o elemento <Format> ou o grupo de elementos <Options>. Não pode 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 de XML para JSON no proxy de API específico onde ocorreu a falha. Se existir alguma política de XML para JSON em que qualquer um dos elementos <Options> ou <Format> não esteja declarado, essa é a causa do erro.

    Por exemplo, a seguinte política não tem nenhum dos elementos declarados:

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

Certifique-se de que o XML da política XML para JSON tem um dos elementos <Options> ou <Format> declarados 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 implementação do proxy de API através da IU ou da API Apigee 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.

Captura de ecrã de exemplo

Mensagem de erro de formato desconhecido.

Causa

Se o elemento <Format> no interior da política XML para JSON tiver um formato desconhecido definido, a implementação do proxy de API falha.

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

Diagnóstico

  1. Identifique a política de XML para JSON onde ocorreu o erro e o formato desconhecido. Pode encontrar estas informações na mensagem de erro. Por exemplo, no erro seguinte, 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 de XML para JSON com falha corresponde ao valor identificado na mensagem de erro (passo n.º 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 é a causa do erro.

    No exemplo de política de XML para JSON apresentado acima, o formato é google.com, que é inválido. Por conseguinte, a implementação do proxy de API falha com o erro:

    XMLToJSON[WithFormat]: Unknown Format google.com.
    

Resolução

Certifique-se de que o formato especificado no elemento <Format> da política de XML para JSON é válido. Por 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>