Rozwiązywanie problemów z wdrażaniem zasad z XML na JSON

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

EitherOptionOrFormat

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:

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

Przykładowy błąd

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

Przykładowy zrzut ekranu

Przyczyna

Jeśli któryś z elementów <Options> lub <Format> nie jest zadeklarowany w zasadzie XML to JSON, wdrożenie serwera proxy interfejsu API nie powiedzie się.

Jeśli nie używasz <Format>, wymagana jest właściwość <Options>.

Użyj elementu <Format> lub grupy elementów <Options>. Nie możesz używać jednocześnie <Format> i <Options>. Wstępnie zdefiniowane formaty to: xml.com, yahoo, google i badgerFish.

Diagnostyka

  1. Sprawdź wszystkie zasady z formacie XML do JSON na określonym serwerze proxy interfejsu API, na którym wystąpił błąd. Jeśli istnieje zasada z jakiegokolwiek formatu XML na JSON, w której żaden z elementów <Options> lub <Format> nie jest zadeklarowany, to jest przyczyną błędu.

    Na przykład ta zasada nie ma zadeklarowanych żadnych elementów:

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

Rozdzielczość

Upewnij się, że w pliku XML zasad z kodu XML do JSON występuje jeden z elementów <Options> lub <Format> zadeklarowanych w zasadzie.

Przykład 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>

Przykład 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

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:

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

Przykładowy błąd

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

Przykładowy zrzut ekranu

Przyczyna

Jeśli element <Format> w zasadzie XML to JSON ma zdefiniowany nieznany format, wdrożenie serwera proxy interfejsu API nie powiedzie się.

Wstępnie zdefiniowane formaty to: xml.com, yahoo, google i badgerFish.

Diagnostyka

  1. Wskaż zasadę z kodu XML na JSON, w której wystąpił błąd, oraz wskaż nieznany format. Informacje te znajdziesz w komunikacie o błędzie. Na przykład w tym błędzie nazwa zasady to WithFormat, a nieznany format to google.com:

    Error Saving Revision 1
    XMLToJSON[WithFormat]: Unknown Format google.com.
    
  2. Sprawdź, czy nieznany format określony w nieudanej zasadzie XML do JSON jest zgodny z wartością podaną w komunikacie o błędzie (krok 1 powyżej). Na przykład ta zasada określa format jako google.com, co jest zgodne z treścią komunikatu o błędzie:

    <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. Jeśli podany format nie należy do wstępnie zdefiniowanych formatów xml.com, yahoo, google lub badgerFish, to jest przyczyną błędu.

    W przedstawionym powyżej przykładowej zasadzie XML na JSON format to google.com, co jest nieprawidłowy. Dlatego wdrożenie serwera proxy interfejsu API nie powiedzie się z błędem:

    XMLToJSON[WithFormat]: Unknown Format google.com.
    

Rozdzielczość

Sprawdź, czy format określony w elemencie <Format> zasady z XML na JSON jest prawidłowy. Na przykład:

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