我只想将一个简单的Java对象转换为XML,而在Java对象中,没有一个元素被称为@XmlRootElement
和@XmlAttribute
。这可能与JAXB有关吗?
我的Java对象如下所示:
public class myrequest implements java.io.Serializable {
private java.lang.String id;
private java.lang.String code;
private java.lang.String type;
private java.lang.String name;
private java.lang.String count;
and getters and setters....
答案 0 :(得分:0)
您可以使用课程中的marshal
方法编组Java对象而无需JAXB注释
javax.xml.bind.JAXB
引用其javadoc:
定义JAXB常见,简单使用的便捷方法的类 此类中定义的方法是便捷方法,它结合了JAXBContext,Unmarshaller和Marshaller中的几个基本操作。它们被设计为JAXB新手的首选方法。
您可以使用它,例如:
myrequest obj = new myrequest();
obj.setId("1");
obj.setCode("2");
obj.setCount("3");
JAXB.marshal(obj, System.out);
您将获得以下XML输出:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<myrequest>
<code>2</code>
<count>3</count>
<id>1</id>
</myrequest>
答案 1 :(得分:0)
是;如果你想这样做,那么你需要创建一个JAXBElement<myrequest>
并将其传递给编组程序,而不是直接将myrequest
传递给编组程序。例如:
myrequest request = ...;
JAXBContext context = new JAXBContext(myrequest.class);
Marshaller marshaller = context.createMarshaller();
// Create a JAXBElement wrapper
JAXBElement<myrequest> element = new JAXBElement<>(request);
// Pass that to the marshaller
marshaller.marshall(element, System.out);