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

我没有将名称作为 @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”。


我尝试了很多事情但一无所获。


慕的地8271018
浏览 45回答 1
1回答

白衣染霜花

您的问题是@XmlElementRef.name不起作用@XmlRootElement,请阅读此处。您所要做的就是从xml 元素上删除属性名称。XmlElementRef@XmlElementRef(type = JAXBElement.class, required = false)protected JAXBElement<ArrayOfGeneralAgent> agents;并添加@XmlRootElement到您的班级中。@XmlRootElement(name="Agents")public class ArrayOfGeneralAgent{...}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java