Ich benutze JAXB, um XML-Nachrichten zu erstellen. Die XML-I erstellen müssen ist (aus Gründen der Einfachheit):So instanziieren Sie ein leeres Element mit JAXB
<request>
<header/>
</request>
Mein Code sieht wie folgt aus:
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;
}
}
Das Problem: das header
Element nicht angezeigt wird (Header ist null
). Wenn die Header auf einen leeren String gesetzt ist, wird die folgende angezeigt:
<request>
<header></header>
</request>
Wenn ich als Typ verwenden Object
statt String
, ist das Ergebnis noch schlimmer:
<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: Ich verwende this code zum Erstellen der XML-Zeichenfolge.
Ist es möglich, ein leeres Tag zu bekommen?
Also, was mit der Einstellung Header falsch ist, „“ ? –
Ich möchte und nicht . –
doekman
@doekman Ehm, ich weiß, es ist spät, aber nur für den Fall. GENAU, was Sie wollen, können Sie [EclipseLink MOXy] (http://www.eclipse.org/eclipselink/moxy.php) Implementierung von JAXB verwenden, die eine sehr schöne Erweiterung '@ XmlNullPolicy' hat. Sehen Sie ein Beispiel [hier] (http://stackoverflow.com/a/11748678/814702) (in der "Option # 2" Sektion) – informatik01