Solución de problemas de errores en la implementación de políticas de XML a JSON

Estás viendo la documentación de Apigee Edge.
Ve a la documentación de Apigee X.
info

EitherOptionOrFormat

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o la API de administración de Edge falla con este mensaje de error:

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

Ejemplo de error

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

Captura de pantalla del ejemplo.

Causa

Si uno de los elementos <Options> o <Format> no se declara en la política de XML a JSON, la implementación del proxy de API falla.

El elemento <Options> es obligatorio si no se usa <Format>.

Usa el elemento <Format> o el grupo de elementos <Options>. No puedes usar <Format> y <Options> al mismo tiempo. Los formatos predefinidos incluyen xml.com, yahoo, google y badgerFish.

Diagnóstico

  1. Examina todas las políticas de XML a JSON en el proxy de API específico en el que se produjo la falla. Si hay una política de XML a JSON en la que no se declare alguno de los elementos <Options> o <Format>, esa es la causa del error.

    Por ejemplo, la siguiente política no tiene ninguno de los 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>
    

Solución

Asegúrate de que el XML de la política de XML a JSON tenga uno de los elementos <Options> o <Format> que se declararon en la política.

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

Ejemplo 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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o la API de administración de Edge falla con este mensaje de error:

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

Ejemplo de error

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

Captura de pantalla del ejemplo.

Causa

Si el elemento <Format> dentro de la política de XML a JSON tiene un formato definido, la implementación del proxy de API falla.

Los formatos predefinidos incluyen xml.com, yahoo, google y badgerFish.

Diagnóstico

  1. Identifica la política de XML a JSON en la que se produjo el error y el formato desconocido. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es WithFormat y el formato desconocido es google.com:

    Error Saving Revision 1
    XMLToJSON[WithFormat]: Unknown Format google.com.
    
  2. Verifica que el formato desconocido especificado en la política de XML a JSON con errores coincida con el valor identificado en el mensaje de error (paso 1 anterior). Por ejemplo, en la siguiente política, se especifica el formato como google.com, que coincide con el contenido del mensaje de error:

    <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. Si el formato especificado no es uno de los formatos predefinidos xml.com, yahoo, google o badgerFish, esa es la causa del error.

    En el ejemplo de política XML a JSON que se muestra arriba, el formato es google.com, que no es válido. Por lo tanto, la implementación del proxy de API falla con el siguiente error:

    XMLToJSON[WithFormat]: Unknown Format google.com.
    

Solución

Asegúrate de que el formato especificado en el elemento <Format> de la política de XML a JSON sea válido. Por ejemplo:

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