Khắc phục sự cố về lỗi triển khai chính sách XML sang JSON

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

EitherOptionOrFormat

Thông báo lỗi

Thông báo lỗi này không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

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

Ví dụ về lỗi

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

Ảnh chụp màn hình ví dụ

Nguyên nhân

Nếu một trong các phần tử <Options> hoặc <Format> không được khai báo trong Chính sách chuyển đổi XML sang JSON, thì quá trình triển khai proxy API sẽ không thành công.

Phải có <Options> nếu không sử dụng <Format>.

Sử dụng phần tử <Format> hoặc nhóm phần tử <Options>. Bạn không thể sử dụng cả <Format><Options>. Các định dạng được xác định trước bao gồm: xml.com, yahoo, googlebadgerFish.

Chẩn đoán

  1. Kiểm tra tất cả các chính sách XML sang JSON trong proxy API cụ thể đang xảy ra lỗi. Nếu có bất kỳ chính sách XML sang JSON nào không khai báo một trong các phần tử <Options> hoặc <Format>, thì đó là nguyên nhân gây ra lỗi.

    Ví dụ: chính sách sau đây không khai báo bất kỳ phần tử nào:

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

Độ phân giải

Đảm bảo rằng XML của chính sách XML sang JSON có một trong các phần tử <Options> hoặc <Format> được khai báo trong chính sách.

Ví dụ 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>

Ví dụ 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

Thông báo lỗi

Thông báo lỗi này không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

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

Ví dụ về lỗi

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

Ảnh chụp màn hình ví dụ

Nguyên nhân

Nếu phần tử <Format> trong chính sách XML sang JSON có định dạng không xác định được xác định, thì việc triển khai proxy API sẽ không thành công.

Các định dạng được xác định trước bao gồm: xml.com, yahoo, googlebadgerFish.

Chẩn đoán

  1. Xác định chính sách XML sang JSON nơi xảy ra lỗi và định dạng không xác định. Bạn có thể tìm thấy thông tin này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách là WithFormat và định dạng không xác định là google.com:

    Error Saving Revision 1
    XMLToJSON[WithFormat]: Unknown Format google.com.
    
  2. Xác minh rằng định dạng không xác định được chỉ định trong chính sách chuyển đổi XML sang JSON không thành công khớp với giá trị được xác định trong thông báo lỗi (bước 1 ở trên). Ví dụ: chính sách sau đây chỉ định định dạng là google.com, khớp với nội dung trong thông báo lỗi:

    <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. Nếu Định dạng được chỉ định không phải là một trong các định dạng được xác định trước xml.com, yahoo, google hoặc badgerFish, thì đó là nguyên nhân gây ra lỗi.

    Trong ví dụ về Chính sách chuyển đổi XML sang JSON ở trên, định dạng là google.com không hợp lệ. Do đó, việc triển khai Proxy API không thành công với lỗi:

    XMLToJSON[WithFormat]: Unknown Format google.com.
    

Độ phân giải

Đảm bảo rằng định dạng được chỉ định trong phần tử <Format> của chính sách chuyển đổi XML sang JSON là hợp lệ. Ví dụ:

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