我在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;
特殊DTO类:
@XmlType(propOrder= {"CODIGO", "NOME"})
@XmlAccessorType(XmlAccessType.FIELD)
public class EspecialidadeDTO extends ParentDTO {
@XmlElement(name="codigo")
private Long CODIGO;
@XmlElement(name="nome")
private String NOME;
我试了好几种方法,但都没能按我想要的方法去做。放一些注释我找到了一些教程,但失败了
您需要将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;
}