Java 使用JAXB/JAX-RS将XML元素包装到子元素中
我有一个将被序列化/反序列化为XML的类Java 使用JAXB/JAX-RS将XML元素包装到子元素中,java,xml,jaxb,jax-rs,Java,Xml,Jaxb,Jax Rs,我有一个将被序列化/反序列化为XML的类 @XmlRootElement(name = "nnxml") @XmlAccessorType(XmlAccessType.FIELD) public class InfoRequest { @XmlElement(name = "vendor_id") private String vendorId; @XmlElement(name = "vendor_authcode") private String auth
@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\u请求
元素中包装上述字段?我必须创建类似于内部类的东西吗?还是有一种更简单的方法?一种方法是创建这样的包装类并插入类
@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>
厂商标识
认证码
如果您找到了其他解决方案,请告诉我