У меня есть объект, подобный этому:
public class Obj {
@XmlElement(name="value")
public Set<Object> values;
}
При маршалинге создается xml, например:
<Obj>
<value xsi:type="xs:dateTime" xmlns:xs="http://www.w3.org/2001/XMLSchema">2009-02-14T00:31:30.001+01:00</value>
<value xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">test</value>
</Obj>
Однако я хочу изменить некоторые из этих значений (например, формат даты, используемый для сериализации объектов Date
и Timestamp
), а также избавиться от надоедливых атрибутов xsi
(но это не совсем обязательное требование, я могу с этим смириться)
Я пытался добавить @XmlJavaTypeAdapter
к values
, но в адаптере я получаю полный Set<Object>
вместо отдельных элементов. Я также пытался использовать пакетный адаптер, но, поскольку мой Set
предназначен для Object
, я не могу поставить атрибут @XmlJavaTypeAdapter(type)
.
Кроме того, я пытался с помощью @XmlJavaTypeAdapter(value=MyAdapter.class, type=Timestamp.class)
получить только адаптер для значений внутри этого объекта, который мне нужен.
Итак, вопрос: кто-нибудь знает, как заставить адаптер работать для этого? Или, может быть, менять формат даты каждый раз, когда объект Date
или Timestamp
сериализуется?
Заранее спасибо!