Special имеет два разных тега DAY
и Week
, поэтому вы можете разделить их на два класса POJO как
data class DAY(@JacksonXmlProperty(localName = "Date") val date: String, @JacksonXmlProperty(localName = "MASK")val mask: String)
data class WEEK(@JacksonXmlProperty(localName = "PARAM") val param: String,@JacksonXmlProperty(localName = "Name") val name: String)
и использовать их в классе SPECIAL как:
data class SPECIAL(@JacksonXmlProperty(localName = "WEEK") val week: WEEK, @JacksonXmlProperty(localName = "DAY") val day: DAY)
Чтобы сделать поле SPECIAL
необязательным, пометьте это поле как обнуляемое в вашем классе TABLE
, используя ?
как:
data class TABLE(
@JacksonXmlProperty(localName = "SPECIAL") val special: SPECIAL?,
@JacksonXmlProperty(localName = "NAME") val name: String,
@JacksonXmlProperty(localName = "TIME") val time: String
)
и SPECIAL
class as
data class SPECIAL(
@JacksonXmlProperty(localName = "WEEK") var week: WEEK?,
@JacksonXmlProperty(localName = "DAY") var day: DAY?
)
Просмотреть полный исходный код