Dati i seguenti esempio xsd snippet:JAXB xjc: come generare codice per le stringhe che restituisce vuoto se il valore è nullo?
< xs:attribute name="SEGMENT" default="" use="optional" type="xs:string"/ >
quando xjc genera la classe che contiene l'attributo SEGMENT
di fagioli, il seguente getter è generato automaticamente:
public String getSEGMENT() {
if (segment == null) {
return "";
} else {
return segment;
}
}
mia domanda è come si fa a farlo fare lo stesso per gli oggetti xs:element
? In altre parole, dati i seguenti xsd snippet:
< xs:element name="NAME" default="" type="xs:string"/ >
voglio sapere se posso ottenere xjc per generare il seguente:
public String getNAME() {
if (name == null) {
return "";
} else {
return name;
}
}
Come si può fare?
Un inizializzatore di campo sarebbe sicuramente appropriato. La domanda ora è Come ottengo xjc per aggiungere l'inizializzatore String vuoto a ogni stringa in ogni classe? Forse in un file di binding separato? –
@java luva: ho aggiunto altri dettagli alla mia risposta e ho trovato anche alcuni plugin che sembrano interessanti. Vedi se aiuta. – Bogdan
Grazie per le informazioni aggiuntive. Sto avendo un problema però. I collegamenti che hai inviato implicano la creazione di un compito di esperto o di formica. Non uso Maven. E il problema durante l'impostazione dell'attività della formica è che sto ricevendo un errore di collegamento che indica che diverse classi vengono caricate con lo stesso nome. Il problema, credo, è che java 1.6 ha incorporato xjc e aggiungendo jaxb-xjc-2.1.9.jar al mio classpath xdep taskdef, sono in conflitto. La mia domanda è: come si può ottenere lo script ant per ignorare 1.6 (il mio JAVA_HOME è impostato su quello) e usare il mio classpath taskdef, o fare riferimento al jar 1.6 xjc invece nel taskdef? –