У меня есть pojo, которое отмечено аннотациями JAX-B.Я использую сеттеры и геттеры для заполнения объекта.Я использую маршаллер для записи xml в документ, который в конечном итоге записывается другим API-интерфейсом в outputtream.
Object o = new Object('blah','blah','blah');
Document doc = db.newDocument();
marshaller.marshal(o, doc);
однако у меня есть строка xml, которую нужно установить в качестве атрибута дляодно из моих полей pojo, но мне нужно, чтобы оно отображалось как xml, а не как строка.Это xhtml, поэтому я знаю формат.Как я могу сделать это?У меня есть xsd, но, очевидно, нет «типа» для xml.
//need to do this
String xml = <tag>hello</tag>;
Object o = new Object('blah','blah','blah');
o.setThisXmlField(xml);
marshaller.marshal(o, doc);
edit -> так я выполнил это
<xs:element name="course">
<xs:complexType>
<xs:sequence>
<xs:element name="courseSummary" type="courseSummary"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="courseSummary">
<xs:sequence>
<xs:any/>
</xs:sequence>
</xs:complexType>
и сгенерированный код Javaиспользуется как:
Tidy tidy = new Tidy();
tidy.setXHTML(true);
String courseSummary = "some turruble xml <b>REALLY RUBBISH</li>";
Course c = new Course();
Document courseSummaryDoc = tidy.parseDOM(IOUtils.toInputStream(courseSummary),null);
CourseSummary summary = new CourseSummary();
summary.setAny(courseSummaryDoc.getDocumentElement());
c.setCourseSummary(summary);