我有以下类别,应将其序列化/反序列化为XML。
@XmlRootElement(name = "nnxml")
@XmlAccessorType(XmlAccessType.FIELD)
public class InfoRequest {
@XmlElement(name = "vendor_id")
private String vendorId;
@XmlElement(name = "vendor_authcode")
private String authCode;
}
这目前为我提供了一致且正确的XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<nnxml>
<vendor_id>vendor id</vendor_id>
<vendor_authcode>auth code</vendor_authcode>
</nnxml>
但是我需要将XML元素包装在另一个这样的元素中:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<nnxml>
<info_request>
<vendor_id>vendor id</vendor_id>
<vendor_authcode>auth code</vendor_authcode>
</info_request>
</nnxml>
如何将以上字段包装在info_request
元素中?我是否必须创建类似内部类的东西,还是有更简单的方法?
一种方法是创建这样的Wrapper类并插入您的类
@XmlRootElement(name = "nnxml")
@XmlAccessorType(XmlAccessType.FIELD)
public class Nnxml implements Serializable {
@XmlElement(name = "info_request")
private InfoRequest request;
}
子类的注释是可选的
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "info_request", propOrder = {
"vendorId",
"authCode"
})
class InfoRequest implements Serializable{
@XmlElement(name = "vendor_id")
private String vendorId;
@XmlElement(name = "vendor_authcode")
private String authCode;
}
输出是
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<nnxml>
<info_request>
<vendor_id>vendor id</vendor_id>
<vendor_authcode>auth code</vendor_authcode>
</info_request>
</nnxml>