JAXB 解组 xml 列表元素到单个 Kotlin 对象

JAXB unmarshalling xml list element to single Kotlin object

我按照 XML 创建嵌套的 Kotlin 对象,但它没有映射所有 TimeCycleData 元素

<TimeCycle>
    <Last>
        <Date>2001-06-13T01:00:00.000Z</Date>
        <TimeCycleData>
            <Hours type="F">123</Hours>
        </TimeCycleData>
        <TimeCycleData>
            <Cycles>1234</Cycles>
        </TimeCycleData>
        <TimeCycleData>
            <Land>1234</Land>
        </TimeCycleData>
    </Last>
</TimeCycle>

并希望映射以下 Kotlin 数据 类

data class TimeCycle(
        @field:XmlElement(name = "Last")
        val last: Last? = null
)

data class Last(

        @field:XmlElement(name = "Date")
        @field:XmlJavaTypeAdapter(value = LocalDateTimeAdapter::class, type = LocalDateTime::class)
        val date: LocalDateTime? = null,

        @field:XmlElement(name = "TimeCycleData")
        val timeCycleData: TimeCycleData? = null
)

data class TimeCycleData(

        @field:XmlElement(name = "Hours")
        val hours: DurationDetails? = null,

        @field:XmlElement(name = "Cycles")
        val cycles: Int? = null,

        @field:XmlElement(name = "Land")
        val land: Int? = null
)

data class DurationDetails(

        @field:XmlValue
        @field:XmlJavaTypeAdapter(value = DurationAdapter::class, type = Duration::class)
        val value: Duration? = null,

        @field:XmlAttribute(name = "type")
        val type: String = ""
)

当我解组 XML 时,只有第一个 TimeCycleDataHours 被填充。如何将所有 TimeCycleData 合并为一个对象?

更新: 更正提交 xml

我猜

        @field:XmlElement(name = "TimeCycleData")
        val timeCycleData: TimeCycleData? = null

应该以某种方式声明

        @field:XmlElement(name = "TimeCycleData")
        @field:XmlElementWrapper(name = "TimeCycleInfo")
        val timeCycleInfo: List<TimeCycleData>? = null

.