可以将
javax.xml.bind.annotation.XmlType转换为
XML的String表示形式吗?
例:
以下类Req来自第三方库,所以我无法覆盖toString()方法.
@javax.xml.bind.annotation.XmlAccessorType(javax.xml.bind.annotation.XmlAccessType.FIELD)
@javax.xml.bind.annotation.XmlType(name = "req", propOrder = {"myDetails", "customerDetails"})
public class Req {
...
}
在我的应用程序中,我想简单地获取XML的String表示形式,以便我可以将其记录到一个文件中:
...
...
当我尝试使用JAXB和Marshall来转换为XML字符串:
JAXBContext context = JAXBContext.newInstance(Req.class);
Marshaller marshaller = context.createMarshaller();
StringWriter sw = new StringWriter();
marshaller.marshal(instanceOfReq, sw);
String xmlString = sw.toString();
我得到以下例外:
javax.xml.bind.MarshalException
- with linked exception:
[com.sun.istack.SAXException2: unable to marshal type "mypackage.Req" as an element because it is missing an @XmlRootElement annotation]
我看过第三方库中的其他类,并没有使用@XmlRootElement注释.这样吗?