JAXBを使用してXMLメッセージを作成します。私が作成する必要があるXMLは、(簡略化のために)です:JAXBで空の要素をインスタンス化する方法
<request>
<header/>
</request>
私のコードは次のようになります。
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;
}
}
問題:header
要素が表示されていない(ヘッダがnull
です)。ヘッダが空の文字列に設定されている場合、以下が表示されます
<request>
<header></header>
</request>
IタイプObject
代わりString
のように使用し、結果はさらに悪くなる。
<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:私が使用していますthis codeを使用してXML文字列を作成します。
空のタグを取得することはできますか?
だから、ヘッダーを設定すると間違っているものに「」: - ではなく、空の文字列より - NULL値があるので
は正しい結果が生成されます、私はnullに明示的に値を設定するには、私のsetterメソッドを修正しました? –
を入力し、 を入力しないでください。 –
doekman
@doekmanええ、私はそれが遅れていることを知っていますが、ちょうどの場合。あなたが望むものを正確に行うには、JAXBの[EclipseLink MOXy](http://www.eclipse.org/eclipselink/moxy.php)実装を使用することができます。JAXBには、非常に素晴らしい拡張子@XmlNullPolicyがあります。例[here](http://stackoverflow.com/a/11748678/814702)(「オプション#2」セクション内) – informatik01