mercoledì 8 aprile 2009

Comportamento strano di JAXB la JAXBElement.class non voluta

Ciao a tutti,
spesso capita di trovarsi davanti errori strani, inspiegabili. Quasi sempre sono dovuti a sviste di difficile individuazione, questa mattina è capitato con JAXB generando le classi java mediante il tool XJC il risultato ottenuto era una classe con un parametro content di tipo List e una serie di annotation indicanti i campi dell'xsd di partenza di tipo JAXBElement.


public class TtodgEclIndirizzo {

@XmlElementRefs({
@XmlElementRef(name = "dsc_localita", type = JAXBElement.class),
@XmlElementRef(name = "cod_comune", type = JAXBElement.class),
@XmlElementRef(name = "id_cliente", type = JAXBElement.class),
@XmlElementRef(name = "dat_ini_val", type = JAXBElement.class),
@XmlElementRef(name = "prg_indirizzo", type = JAXBElement.class),
@XmlElementRef(name = "dsc_presso", type = JAXBElement.class),
.....


Mi sarei aspettato di trovare definite le proerties dei tipi Java

@XmlElement(name = "id_cliente", required = true, nillable = true)
protected BigDecimal idCliente;
@XmlElement(name = "cod_nazione", required = true, nillable = true)
protected String codNazione;
@XmlElement(name = "cod_provincia", required = true, nillable = true)
protected String codProvincia;
@XmlElement(name = "prg_indirizzo", required = true, type = Integer.class, nillable = true)
protected Integer prgIndirizzo;
@XmlElement(name = "cod_comune", required = true, nillable = true)
protected String codComune;

...

Se doveste incappare in un problema del genere controllate l'xsd probabilmente è stato definito all'interno dello stesso complexType due o più volte lo stesso element.

Nessun commento:

Posta un commento