У меня есть аннотации JAXB:
@XmlElement(name="String")
private String string = "one";
@XmlElement(name="ArrayOne")
private ArrayList<String> array1 = new ArrayList<String>();
и сортировка:
array.add("Just one");
JAXBContext jc1 = JAXBContext.newInstance( getClass() );
Marshaller marshaller = jc1.createMarshaller();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance() ;
Document doc = factory.newDocumentBuilder().newDocument();
marshaller.marshal(this, doc);
Если я копаюсь в узлах документа, я не вижу никакой разницы между
элементы узла.
Мой вопрос, если есть какой-нибудь трюк, как сделать маршалл в документе DOM
что элементы узла будут как-то различны, будь то простой объект (String),
или массив объектов. Маршаллер, конечно, знает о типах полей, поэтому мне интересно,
если он устанавливает какой-либо флаг в элемент данных.
Структура DOM
NodeName:String NodeContent:one
NodeName:ArrayOne NodeContent:Just one
но я бы хотел, чтобы:
NodeName:String NodeContent:one
NodeName:ArrayOne
Children:
NodeName:ArrayOne NodeContent:Just one
так что я знаю, ArrayOne - это массив, независимо от одного объекта.
Обратите внимание, что я не могу изменить аннотации, поскольку не всегда доступен источник.