J'essaie de désérialiser/unmarshal XML qui contient une collection d'éléments Person enveloppés dans la balise People. J'essaye de désérialiser ce XML dans Kotlin en utilisant JAXB. Tout compile et fonctionne sans erreurs mais la collection people de ma classe est toujours vide. Comment est-ce que je démarshal cette collection?Impossible de démélanger une collection d'objets XML à l'aide de JAXB et Kotlin
import java.io.StringReader
import javax.xml.bind.JAXB
import javax.xml.bind.annotation.XmlAccessType
import javax.xml.bind.annotation.XmlAccessorType
import javax.xml.bind.annotation.XmlElement
import javax.xml.bind.annotation.XmlElementWrapper
@XmlAccessorType(XmlAccessType.FIELD)
data class Person(
var name:String = "",
var age:Int = 0
)
@XmlAccessorType(XmlAccessType.FIELD)
data class Report(
var statusCode:Int = 0,
@XmlElementWrapper(name = "people")
@XmlElement(name = "person")
var people:List<Person>? = null
)
val xml = """
<report>
<statusCode>3</statusCode>
<people>
<person>
<name>Bob</name>
<age>30</age>
</person>
<person>
<name>Alice</name>
<age>40</age>
</person>
</people>
</report>
"""
fun main(args: Array<String>) {
val report = JAXB.unmarshal(StringReader(xml), Report::class.java)
println(report) // Report(statusCode=3, people=[])
}