我在jaxb中有结构generatade:
<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;
我尝试了几种方法,无法按照我想要的方式提供帮助。 放一些注释我发现了一些教程但是失败了
答案 0 :(得分:1)
您需要将name
和codigo
元素表示为使用List
注释的一个@XmlElements
属性,以获取您要查找的行为:
@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;
}