Résolution des erreurs de déploiement de la règle XML vers JSON

Vous consultez la documentation d'Apigee Edge.
Accédez à la documentation sur Apigee X.
info

EitherOptionOrFormat

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur Edge ou de l'API Edge Management échoue avec le message d'erreur suivant:

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

Exemple d'erreur

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

Exemple de capture d'écran

Cause

Si l'un des éléments <Options> ou <Format> n'est pas déclaré dans la règle XML vers JSON, le déploiement du proxy d'API échoue.

<Options> est requis si <Format> n'est pas utilisé.

Utilisez l'élément <Format> ou le groupe d'éléments <Options>. Vous ne pouvez pas utiliser à la fois <Format> et <Options>. Les formats prédéfinis sont les suivants : xml.com, yahoo, google et badgerFish.

Diagnostic

  1. Examinez chacune des règles XML vers JSON dans le proxy d'API spécifique où l'échec a eu lieu. S'il existe une règle XML vers JSON dans laquelle l'un des éléments <Options> ou <Format> n'est pas déclaré, alors il s'agit de la cause de l'erreur.

    Par exemple, la règle suivante n'a aucun des éléments déclarés :

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

Solution

Assurez-vous que le XML de la règle XML vers JSON comprend l'un des éléments <Options> ou <Format> déclaré dans la règle.

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

Exemple 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

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur Edge ou de l'API Edge Management échoue avec le message d'erreur suivant:

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

Exemple d'erreur

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

Exemple de capture d'écran

Cause

Si un format inconnu est défini sur l'élément <Format> de la règle XML vers JSON, le déploiement du proxy d'API échoue.

Les formats prédéfinis sont les suivants : xml.com, yahoo, google et badgerFish.

Diagnostic

  1. Identifiez la règle XML vers JSON où l'erreur s'est produite et le format inconnu. Vous trouverez cette information dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est WithFormat et le format inconnu est google.com :

    Error Saving Revision 1
    XMLToJSON[WithFormat]: Unknown Format google.com.
    
  2. Vérifiez que le format inconnu spécifié dans la règle XML vers JSON ayant échoué correspond à la valeur identifiée dans le message d'erreur (étape 1 ci-dessus). Par exemple, la règle suivante spécifie le format google.com, qui correspond au contenu du message d'erreur :

    <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 le format spécifié n'est pas l'un des formats prédéfinis xml.com, yahoo, google ou badgerFish, alors il s'agit de la cause de l'erreur.

    Dans l'exemple de règle XML vers JSON présenté ci-dessus, le format est google.com, ce qui n'est pas un format valide. Par conséquent, le déploiement du proxy d'API échoue avec l'erreur suivante :

    XMLToJSON[WithFormat]: Unknown Format google.com.
    

Solution

Assurez-vous que le format spécifié dans l'élément <Format> de la règle XML vers JSON est valide. Exemple :

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