我在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类:
@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类:
@XmlType(propOrder= {"CODIGO", "NOME"})
@XmlAccessorType(XmlAccessType.FIELD)
public class EspecialidadeDTO extends ParentDTO {
@XmlElement(name="codigo")
private Long CODIGO;
@XmlElement(name="nome")
private String NOME;我已经尝试了好几种方法,无法控制我想要的方式。我找到了一些教程,但失败了
发布于 2014-10-30 14:21:01
您需要将name和codigo元素表示为一个带有@XmlElements注释的List属性,以获得您想要的行为:
@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;
}https://stackoverflow.com/questions/26654592
复制相似问题