У меня проблема с сериализацией. У меня есть XML:
<ds:Transforms>
<ds:Transform Algorithm = "http://www.w3.org/2000/09/xmldsig#enveloped"/>
<ds:Transform Algorithm = "http://www.w3.org/TR/2001/REC"/>
</ds:Transforms>
Преобразование тега пусто, но имеет атрибут.
Поджо трансформирует:
@Data
public class Transforms {
@JacksonXmlProperty(localName = "Transform")
@JacksonXmlElementWrapper
private List<Transform> transform;
}
Преобразование Поджо:
@Data
public class Transform {
@JacksonXmlProperty(isAttribute = true, localName = "Algorithm")
private String algorithm;
}
Когда я сериализую данный XML, входящий результат:
Transforms(transform=[])
Как я могу получить список из двух преобразований с алгоритмом поля?




Просто отключите атрибут useWrapping в @JacksonXmlElementWrapper, поместив false в класс Transforms. Это сработает.
Обновленный код:
@Data
public class Transforms {
@JacksonXmlProperty(localName = "Transform")
@JacksonXmlElementWrapper(useWrapping = false)
private List<Transform> transform;
}
Вывод на моем локальном компьютере:
Transforms(transform=[Transform[algorithm='http://www.w3.org/2000/09/xmldsig#enveloped'], Transform[algorithm='http://www.w3.org/TR/2001/REC']])
Спасибо! Я попробовал ``` @JacksonXmlElementWrapper(useWrapping = false, localname = "Transform") ``` И это не сработало, но ваш код работает!