我有以下类,应将其序列化/反序列化为 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
元素中?我是否必须创建类似内部类的东西还是有更简单的方法?
最佳答案
一种方法是创建一个像这样的包装类并插入您的类
@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>
关于java - 使用 JAXB/JAX-RS 将 XML 元素包装在子元素中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60620746/