Я пытаюсь сделать то же самое, но всегда получаю ту же ошибку Исключение в потоке "main" name = "soap-env: Body", обязательный = false) param: Элемент (name = "soap-env: Body", обязательный = false) var body: Body? = null)
аюсь использовать XML с помощью SimpleXML от Retrofit 2. После нескольких часов борьбы с Kotlin я решил попробовать версию Java и затем преобразовать ее в Kotlin. И версия Java работала хорошо ...
ошибка:
java.lang.RuntimeException: org.simpleframework.xml.core.MethodException: Annotation @org.simpleframework.xml.ElementList(data=false, empty=true, entry=, inline=true, name=entry, required=true, type=void) must mark a set or get method
Мне нужен класс модели Kotlin, который сможет использовать этот XML. Вот вход:
<feed>
<entry>
<id> someid </id>
<published> somedate </published>
</entry>
<entry>
<id> someid2 </id>
<published> somedate2 </published>
</entry>
</feed>
Версия класса модели Java (работает нормально):
@Root(name = "feed", strict = false)
public class MFeed {
@ElementList(name = "entry", inline = true)
private List<MEntry> entriesList;
public MFeed(List<MEntry> entriesList) {
this.entriesList = entriesList;
}
public MFeed() {
}
public List<MEntry> getEntriesList() {
return entriesList;
}
public void setEntriesList(List<MEntry> entriesList) {
this.entriesList = entriesList;
}
}
@Root(name = "entry", strict = false)
public class MEntry {
@Element(name = "id")
private String id;
@Element(name = "published")
private String published;
public MEntry() {
}
public MEntry(String id, String published) {
this.id = id;
this.published = published;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPublished() {
return published;
}
public void setPublished(String published) {
this.published = published;
}
}
и автоматически сгенерированные модели Kotlin выглядят так:
@Root(name = "feed", strict = false)
class Feed {
@ElementList(name = "entry", inline = true)
private var entriesList: List<MEntry>? = null
//autogenerated by converter java -> kotlin
constructor(entriesList: List<MEntry>) {
this.entriesList = entriesList
}
//autogenerated by converter java -> kotlin
constructor() {}
}
@Root(name = "entry", strict = false)
class Entry {
@Element(name = "id")
var id: String? = null
@Element(name = "published")
var published: String? = null
//autogenerated by converter java -> kotlin
constructor() {}
//autogenerated by converter java -> kotlin
constructor(id: String, published: String) {
this.id = id
this.published = published
}
}
Я много работал за списки XML, включаяэто Почта,это а такжеэто, Никто не работал. Возможно, они устарели. Кто-нибудь сталкивался с такой проблемой?