Я использую 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>
Когда я использую в качестве типа 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-строку.
Возможно ли сделать пустую бирку?
Так что не так с установкой заголовок «» ? –
Я хочу и не . –
doekman
@doekman Ehm, я знаю, что поздно, но на всякий случай. Чтобы сделать ТОЧНО, что вы хотите, вы можете использовать реализацию EclipseLink MOXy (http://www.eclipse.org/eclipselink/moxy.php) JAXB, которая имеет очень приятное расширение '@ XmlNullPolicy'. См. Пример [здесь] (http://stackoverflow.com/a/11748678/814702) (в разделе «Вариант № 2») – informatik01