Binding 需要知道JAXB注释才能将xml与我的类绑定

Binding 需要知道JAXB注释才能将xml与我的类绑定,binding,jaxb,Binding,Jaxb,我有以下课程 @XmlRootElementname=ExecutionRequest @XmlAccessorTypeXmlAccessType.FIELD 公共类执行请求{ @xmlementname=命令 私有字符串命令; @XmlElementWrappername=ExecutionParameters @XmlElementname=ExecutionParameter 私有ArrayList ExecutionParameters; } @XmlRootElement @XmlAc

我有以下课程

@XmlRootElementname=ExecutionRequest @XmlAccessorTypeXmlAccessType.FIELD 公共类执行请求{ @xmlementname=命令 私有字符串命令; @XmlElementWrappername=ExecutionParameters @XmlElementname=ExecutionParameter 私有ArrayList ExecutionParameters; } @XmlRootElement @XmlAccessorTypeXmlAccessType.FIELD 公共类ExecutionParameter{ @xmlementname=Key 私钥; @XmlElementname=值 私有字符串值; } 当我整理ExecutionRequest对象时,我得到以下XML-

检索头 工业贸易署 ASTLGA-ALTE010220101 ctag dq 根据JAXB绑定,它工作正常。 但我希望XML在一个ExecutionParameter中包含所有键值集合,如-

检索头 工业贸易署 ASTLGA-ALTE010220101 ctag dq 有没有办法通过更改注释来获得这样的xml。 如果需要澄清,请告诉我。
提前谢谢。

没有元数据。通过将键和值映射到@xmldattribute,您可以得到一个紧凑的XML表示,它很容易解析

更新

如果必须支持此XML格式,则可以使用JAXB和XSLT来获得所需的结果:

//创建变压器 TransformerFactory tf=TransformerFactory.newInstance; StreamSource xslt=新StreamSource src/example/stylesheet.xsl; 变压器变压器=tf.newTransformerxslt; //来源 JAXBContext jc=JAXBContext.newInstanceExecutionRequest.class; JAXBSource-source=new-JAXBSourcejc,请求; //结果 StreamResult=新的StreamResultSystem.out; //转化 transformer.transformsource、result; 更多信息


感谢Blaise,您的意思是将xml元素更改为xml属性,这样我就可以拥有带有键和值属性的执行参数列表。对吗?但是这个执行请求对象必须被封送,并以我前面提到的格式将xml发送到其他系统。有没有其他方法可以实现这一目标?谢谢@Hari—您是直接与JAXB Marshaller交互,还是通过JAX-WS或JAX-RS自动完成?你也需要处理解组吗?是的。。。我直接与JAXB Marshaller交互。我需要解组,但不需要解组ExecutionRequest,这是我将从第三方系统接收的ExecutionResponse。@Hari-它是否具有相同类型的需求?不,ExecutionRequest和ExecutionResponse对象都不同,它们都具有完全不同的xml结构和元素。