4

XML メッセージを Java オブジェクトに非整列化しようとしています。ほとんどの部分で機能していますが、私が立ち往生している問題が1つあります。次のようなスキーマがあります。

<DeliveryDetails>
  <Name>Ed</Name>
  <Location>Toronto</Location>
  <Event>
    <Date>2013-05-06</Date>
    <Time>12:12</Time>
    <Description>MARKHAM</Description>
  </Event>
  <Event>
    <Date>2013-05-07</Date>
    <Time>05:12</Time>
    <Description>MARKHAM</Description>
  </Event>
  <Event>
    <Date>2013-05-08</Date>
    <Time>15:12</Time>
    <Description>MARKHAM</Description>
  </Event>
</DeliveryDetails>

ここでの問題は、JAXB ObjectFactory が最後のイベントのみを保存していることです。イベントをラップする要素 ( ) があれば、XML Element Wrapper を使用してそれを処理する方法がわかります。しかし、ラッパーがないので、どうすればよいかわかりません。誰にもアイデアはありますか?

ObjectFactory はすべてのイベントを取得していると思いますが、常に古いものを最新のもので上書きしています。毎回同じイベントを上書きするのではなく、個々のイベントを保存するように指示する方法が必要ですが、それを達成する方法がわかりません。

4

1 に答える 1

8

デフォルトでは、JAXB (JSR-222)実装はList、同じ名前の複数の要素として表されます。次のようなものがある限り、問題ありません。

@XmlRootElement(name="DeliveryDetails")
@XmlAccessorType(XmlAccessType.FIELD)
public class DeliveryDetails {

    @XmlElement(name="Name")
    private String name;

    @XmlElement(name="Location")
    private String location;

    @XmlElement(name="Event")
    private List<Event> events;

}

詳細については

于 2013-05-24T22:00:25.053 に答える