Я хотел бы изменить выходной поток для операции маршалинга JAXB, чтобы включить произвольный XML. Вот пример, чтобы прояснить ситуацию.
У меня есть произвольный объект домена Product
с аннотациями JAXB, которые в настоящее время выглядят следующим образом:
@XmlRootElement(name="Product")
public class Product {
@XmlElement(name="CommonProperty")
private String commonProperty="Something";
@XmlElement(name="ExtraXml")
private String extraXml="Something extra";
}
Которые обычно превращаются в это:
Something
Something else
А что, если поле extraXml
содержало некоторый дополнительный XML (произвольной сложности), который должен был быть включен в окончательный упорядоченный результат?
Скажем, extraXml
содержит "
", я бы очень хотел решение, которое позволило бы мне упорядочить Продукт
следующим образом (форматирование необязательно):
Something
Something extra
Я рассмотрел этот связанный вопрос , но он не дал того результата, который мне нужен, поскольку он больше ориентирован на общее изменение формата, чем на вставку DOM.
Свойство extraXml
приведено только для иллюстрации, его можно пометить как @XmlTransient
или в отдельный специализированный класс. Единственным критерием является то, что он может каким-то образом получить String
, содержащий полностью произвольный XML-контент для добавления к индивидуальному упорядоченному выводу Product
.
Я также должен упомянуть, что потребители вывода из этого могут анализировать произвольный контент удобным для них способом. Цель здесь - упростить обработку на стороне сервера.
Заранее благодарим за любую помощь, которую вы можете предложить.