0

CXF を使用して WSDL/XSD から Java クラスを生成し、後で XML (JMS 用) に戻しています。

生成されたクラスの 1 つで、次のように述べています。

@XmlElement(namespace = "http://www.example.com/", nillable = true)
protected Datum datum;

すべて問題ありませんが、null 値を入力すると、次のようになります。

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 に答える