为了账号安全,请及时绑定邮箱和手机立即绑定

JAXB 编组 @XmlElementRef name 属性不作为 Name

JAXB 编组 @XmlElementRef name 属性不作为 Name

慕的地8271018 2024-01-05 14:49:22
我没有将名称作为 @XmlElementRef 的标签名称。父元素中的元素声明:@XmlElementRef(name = "Agents",  type = JAXBElement.class, required = false)protected JAXBElement<ArrayOfGeneralAgent> agents;类 ArrayOfGeneralAgent 的声明:@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name = "Agents", propOrder = {    "generalAgent"})public class ArrayOfGeneralAgent {@XmlElement(name = "GeneralAgent", nillable = true)        protected List<GeneralAgent> generalAgent;...}从上面的代码来看,需要以下 xml:<Agents>  <GeneralAgent>    <ComPerc>1.5</ComPerc>    <CustID>abc</CustID>    <SharePerc>123</SharePerc>  </GeneralAgent></Agents>但是像这样获取 XML:<ArrayOfGeneralAgent>  <GeneralAgent>    <ComPerc>1.5</ComPerc>    <CustID>abc</CustID>    <SharePerc>123</SharePerc>  </GeneralAgent></ArrayOfGeneralAgent>而不是“代理”得到“ArrayOfGeneralAgent”。我尝试了很多事情但一无所获。
查看完整描述

1 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

您的问题是@XmlElementRef.name不起作用@XmlRootElement,请阅读此处。


您所要做的就是从xml 元素上删除属性名称。XmlElementRef


@XmlElementRef(type = JAXBElement.class, required = false)

protected JAXBElement<ArrayOfGeneralAgent> agents;

并添加@XmlRootElement到您的班级中。


@XmlRootElement(name="Agents")

public class ArrayOfGeneralAgent{...}


查看完整回答
反对 回复 2024-01-05
  • 1 回答
  • 0 关注
  • 41 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信