2013-08-02 66 views
0

我使用CXF從WSDL/XSD生成java類,然後返回到XML(對於JMS)。刪除元素中的xsi命名空間

在生成的類之一,它說:

@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

我這樣做了另一種方式。我寫了一個檢查某些屬性的攔截器。如果找到,我將xsi:nil =「true」屬性添加到xml。