0

我正在使用 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",因为这个命名空间已经在根元素。在我们必须使用的测试平台上,验证也失败了。

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

4

1 回答 1

0

我反其道而行之。我写了一个拦截器来检查某些属性。如果找到,我将 xsi:nil="true" 属性添加到 xml。

于 2014-01-28T10:09:47.173 回答