首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAXB -更改结构子节点

JAXB -更改结构子节点
EN

Stack Overflow用户
提问于 2014-10-30 13:40:57
回答 1查看 107关注 0票数 1

我在jaxb中有一个结构生成:

<Crm> <codigo>000</codigo> <uf>GO</uf> <crm>7784CRM</crm> <Especialidade> <codigo>13</codigo> <nome>CIRURGIA</nome> </Especialidade> <Especialidade> <codigo>14</codigo> <nome>CIRURGIA GERAL</nome> </Especialidade> </Crm>

我需要这个结构

<Crm> <codigo>0000</codigo> <uf>GO</uf> <crm>0000CRM</crm> <Especialidade> <codigo>13</codigo> <nome>CIRURGIA PLASTICA</nome> <codigo>14</codigo> <nome>CIRURGIA GERAL</nome> </Especialidade> </Crm>

CrmDTO类:

代码语言:javascript
复制
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class CrmDTO extends ParentDTO {

@XmlElement(name="codigo")
private Long CODIGO;

@XmlElement(name="uf")
private String UF;

@XmlElement(name="crm")
private String CRM;

@XmlElement(name = "Especialidade")
private List<EspecialidadeDTO> especialidades;

EspecialidadeDTO类:

代码语言:javascript
复制
@XmlType(propOrder= {"CODIGO", "NOME"})
@XmlAccessorType(XmlAccessType.FIELD)
public class EspecialidadeDTO extends ParentDTO {

@XmlElement(name="codigo")
private Long CODIGO;

@XmlElement(name="nome")
private String NOME;

我已经尝试了好几种方法,无法控制我想要的方式。我找到了一些教程,但失败了

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-30 14:21:01

您需要将namecodigo元素表示为一个带有@XmlElements注释的List属性,以获得您想要的行为:

代码语言:javascript
复制
@XmlRootElement(name="Crm")
@XmlAccessorType(XmlAccessType.FIELD)
public class CrmDTO extends ParentDTO {

    @XmlElement(name = "codigo")
    private Long CODIGO;

    @XmlElement(name = "uf")
    private String UF;

    @XmlElement(name = "crm")
    private String CRM;

    @XmlElementWrapper(name="Especialidade")
    @XmlElements({
      @XmlElement(name="codigo", type=Long.class),
      @XmlElement(name="name", type=String.class)
    })
    private List<Object> especialidades;

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26654592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档