Uso JAXB para crear mensajes XML. El XML Necesito crear es (en aras de la simplicidad):Cómo crear instancias de un elemento vacío con JAXB
<request>
<header/>
</request>
Mi código es el siguiente:
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;
}
}
El problema: No se muestra el elemento header
(cabecera es null
). Cuando cabecera se establece en una cadena vacía, se mostrará la siguiente:
<request>
<header></header>
</request>
Cuando utilizo como tipo Object
en lugar de String
, el resultado es aún peor:
<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>
Por cierto: estoy usando this code para crear la cadena XML.
¿Es posible obtener una etiqueta vacía?
Entonces, ¿qué es malo en establecer cabecera a "" ? –
Quiero y no . –
doekman
@doekman Ehm, sé que es tarde, pero por las dudas. Para hacer EXACTAMENTE lo que desea, puede usar la implementación de [EclipseLink MOXy] (http://www.eclipse.org/eclipselink/moxy.php) de JAXB, que tiene una extensión muy bonita '@ XmlNullPolicy'. Vea un ejemplo [aquí] (http://stackoverflow.com/a/11748678/814702) (en la sección "Opción n.º 2") – informatik01