Io uso JAXB per creare messaggi XML. L'XML Ho bisogno di creare è (per semplicità):Come istanziare un elemento vuoto con JAXB
<request>
<header/>
</request>
Il mio codice è simile al seguente:
import javax.xml.bind.annotation.*;
@XmlRootElement(name = "request")
public class Request {
private String header;
@XmlElement(required=true)
public String getHeader() {
return header;
}
public void setHeader(String header) {
this.header=header;
}
}
Il problema: l'elemento header
non viene visualizzato (intestazione è null
). Quando intestazione è impostato su una stringa vuota, viene visualizzato il seguente:
<request>
<header></header>
</request>
Quando uso come tipo Object
invece di String
, il risultato è anche peggiore:
<request>
<header xsi:type="xs:string"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></header>
</request>
BTW: sto usando this code per creare la stringa XML.
È possibile ottenere un tag vuoto?
Così che cosa è sbagliato con l'impostazione di testa a "" ? –
Voglio e non . –
doekman
@doekman Ehm, so che è tardi, ma per ogni evenienza. Per ESATTAMENTE quello che vuoi, puoi usare l'implementazione [EclipseLink MOXy] (http://www.eclipse.org/eclipselink/moxy.php) di JAXB, che ha un'estensione molto bella '@ XmlNullPolicy'. Guarda un esempio [qui] (http://stackoverflow.com/a/11748678/814702) (nella sezione "Opzione n. 2") – informatik01