我正在使用CXF从WSDL / XSD生成java类,然后再生成XML(用于JMS)。
在其中一个生成的类中,它说:
@XmlElement(namespace = "http://www.example.com/", nillable = true)
protected Datum datum;
一切都很好,但是当我输入一个空值时:
test.setDatum(null);
我得到了以下XML:
<datum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" />
xsi:nil =“true”是我想要的,但我不想要名称空间 xmlns:xsi =“http://www.w3.org/2001 / XMLSchema-instance“,因为此命名空间已在根元素中指定。此外,验证在我们必须使用的测试平台上失败。
如何摆脱元素中的额外命名空间?
答案 0 :(得分:0)
我反过来做了。我写了一个拦截器来检查某些属性。如果找到,我将xsi:nil =“true”属性添加到xml。