Последовательность XML-элемента не попадает в упорядоченный формат при выполнении вызова API SOAP

1

Я работаю с SOAP-запросом и сгенерированным классом модели в соответствии с моим запросом сделать вызов API через модификацию, но проблема в том, что последовательность заказа моего тега изменилась в строке запроса, поэтому я не получаю ответ об успешном выполнении.

Ожидаемый формат запроса

<soap:Envelope xmlns:xsi="URL" xmlns:xsd="URL" xmlns:soap="URL/">
  <soap:Header>
        .....
  </soap:Header>
  <soap:Body>
        ..... 
  </soap:Body>
</soap:Envelope>

Что я получаю ниже:

<soap:Envelope xmlns:xsi="URL" xmlns:xsd="URL" xmlns:soap="URL/">
  <soap:Body>
        ..... 
  </soap:Body>
  <soap:Header>
        .....
  </soap:Header>
</soap:Envelope>

Модель класса для этого:

Root(name = "soap:Envelope")
@NamespaceList(Namespace(prefix = "xsi", reference = "URL"), Namespace(prefix = "xsd", reference = "URL"), Namespace(prefix = "soap", reference = "URL"))
public class ABC{
        @field:Element(name = "soap:Header", required = true)
        var header : Header = Header(),

        @field: Element(name = "soap:Body", required = true)
        var body : Body = Body()
}

@Root(name = "soap:header", strict = false)
public class Header{
        ....
}

@Root(name = "soap:Body", strict = false)
public class Body{
      ....
}

Как вы можете видеть, тег Header понижается в моем сгенерированном запросе, и это вызывает проблему.

Заранее спасибо.

Теги:
retrofit

1 ответ

0

Решается простым изменением имени переменной в порядке алфавитного порядка

@field: Элемент (name = "soap: Header") var Aheader = Header()

@field: Элемент (name = "soap: Body") var Zbody = Body()

Теперь заголовок тега идет первым, а затем тело тега

Ещё вопросы

Сообщество Overcoder
Наверх
Меню