删除元素中的xsi名称空间

时间:2013-08-02 09:30:11

标签: java cxf jaxb2

我正在使用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“,因为此命名空间已在根元素中指定。此外,验证在我们必须使用的测试平台上失败。

如何摆脱元素中的额外命名空间?

1 个答案:

答案 0 :(得分:0)

我反过来做了。我写了一个拦截器来检查某些属性。如果找到,我将xsi:nil =“true”属性添加到xml。