17

注釈付きのクラスがある場合

@XmlType(name = "someDTO", propOrder = { "firstField", "secondField", })

しかし、XML(たとえば、SOAP応答から)は次のようになります。

<return><firstField>a</firstField><secondField>b</secondField><thirdField>c</thirdField></return>

オブジェクトには引き続きfirstFieldとsecondFieldが入力され、thirdFieldは無視されます。

どうしてこれなの?これは常に当てはまりますか?余分なフィールドが存在する場合にオブジェクトの作成を防ぐ方法はありますか?

4

1 に答える 1

21

一部のJAXB(JSR-222)実装は、に含まれていないXML要素にマップされたプロパティがある場合に文句を言いますpropOrderpropOderon@XmlTypeは、どの要素を含める/除外するかを制御するためには使用されません。

プロパティを除外するためのオプション

  1. プロパティの半分未満を除外する場合は、除外するプロパティにをマークすることをお勧めします@XmlTransient
  2. プロパティの半分以上を除外したい場合は@XmlAccessorType(XmlAccessType.NONE)、含めたいプロパティを使用して注釈を付けることをお勧めします。

詳細については

于 2012-06-19T16:09:40.607 に答える