2016-11-29 16 views
0

Jaxbアノテーションを使用して、自分のJavaモデルからXMLエクスポートを作成する必要があります。 私が必要とするのは、注文の子ツリーでなければならない複数のエンティティを含む親エンティティである次のXMLです。続きJaxB注釈を使用して子タグを作成する方法は?

<order> 
<staffId>1</staffId> 
<status>ACTIVE</status> 
<id>12</id> 
<name>Order 1</name> 
    <itemList> 
     <item>Item 1</item> 
     <item>Item 2</item> 
     <item>Item 3</item> 
    </itemList> 
</order> 

は私のJAXB注釈付きクラス

import java.io.Serializable; 
import java.util.*; 

import javax.xml.bind.annotation.*; 

@XmlRootElement 
@XmlType(propOrder = {"staffId", "status", "id", "name", "itemList"}) 
public class Order implements Serializable { 

    private static final long serialVersionUID = 1L; 
    private int id; 
    private int staffId; 
    private String status; 
    private String name; 
    private List<String> itemList = new ArrayList<>(); 

    @XmlElement 
    public int getId() { 
     return id; 
    } 
    public void setId(int id) { 
     this.id = id; 
    } 
    @XmlElement 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    @XmlElement 
    public int getStaffId() { 
     return staffId; 
    } 
    public void setStaffId(int staffId) { 
     this.staffId = staffId; 
    } 
    @XmlElement 
    public String getStatus() { 
     return status; 
    } 
    public void setStatus(String status) { 
     this.status = status; 
    } 
    @XmlElement 
    public List<String> getItemList() { 
     return itemList; 
    } 
    public void setItemList(List<String> itemList) { 
     this.itemList = itemList; 
    } 
} 

である。しかし、私は取得しています出力は、アイテムリストは順序と同じ階層に来ている、次のとおりです。

<order> 
    <staffId>1</staffId> 
    <status>ACTIVE</status> 
    <id>12</id> 
    <name>Order 1</name> 
    <itemList>Item 1</itemList> 
    <itemList>Item 2</itemList> 
    <itemList>Item 3</itemList> 
</order> 

ここに記載されていないものをお伝えください。

答えて

1

これはJAXB Annotationsの複製です。あなたが探しているものは、@XmlElementアノテーションとともに使用される@XmlElementWrapperアノテーションです。

FWIW、Blaise Doughanのブログ投稿JAXB & Collection Propertiesには、コレクションの処理に関するその他の有益な情報があります。

+0

「重複した理由」とよく似ています。 – lexicore

+0

ありがとうございます。はい、これは完全に重複しており、私の問題は解決しました。 –

関連する問題