Я хочу добавить экземпляр DynaBean в xml, но хочу иметь атрибуты DynaProperties.У меня есть очень простое расширение для BasicDynaBean:
@XmlRootElement
private static class DynaBeanExtension extends BasicDynaBean {
public DynaBeanExtension() {
super(null);
}
public DynaBeanExtension(DynaClass dynaClass) {
super(dynaClass);
}
@XmlElement
@Override
public Map<String, Object> getMap() {
return super.getMap();
}
}
Я создаю его экземпляр и пытаюсь выполнить маршалл:
DynaBeanExtension dynaBean = new DynaBeanExtension(dynaClass);
dynaBean.set("firstName", "SampleName");
dynaBean.set("lastName", "SampleSurname");
JAXBContext jaxbContext = JAXBContext.newInstance(DynaBeanExtension.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
В результате я получаю следующее:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<dynaBeanExtension>
<map>
<entry>
<key>firstName</key>
<value xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">SampleName</value>
</entry>
<entry>
<key>lastName</key>
<value xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">SampleSurname</value>
</entry>
</map>
</dynaBeanExtension>
Как видите, карта сериализуется с механизмом по умолчанию.Как должна выглядеть реализация XmlAdapter, чтобы firstName и lastName были атрибутами?