2012-08-01 70 views
0

我的對象結構與XML結構沒有太大的不同。只是想改變它的一個元素。 我有一個XML結構,這樣根據我的對象結構,JAXB可以解組XML嗎?

<Parent> 
    <Child1></Child1> 
    <Child2></Child2> 
    <Child3></Child3> 
    <Child3></Child3> 
    <Child3></Child3> 
</Parent> 

及其等價JAXB類看起來像這樣

@XmlRootElement(name="Parent") 
    @XmlAccessorType(XmlAccessType.FIELD) 
    @XmlType(name = "Parent_Type") 
    public class Parent { 
     protected List<Child1Type> child1; 
     protected List<Child2Type> child2; 
     protected List<Child3Type> child3; 
    } 

但按照數據庫模型要求我要Child1下Child3名單。這將幫助我使用Hibernate保存XML。

public class Child1 { 
    protected List<Child3Type> child3; 
} 

如何使用JAXB對其進行配置? 或者我應該使用afterUnmarshal手動執行它?

+0

您可能需要'@ XmlIDREF':http://blog.bdoughan.com/2010/10/jaxb-and-shared-references-xmlid-and.html – 2012-08-01 13:27:40

+0

@BlaiseDoughan我剛剛更新了預期的對象模型。這裏Child1需要Child3.Sorry的列表來顯示覆制粘貼錯誤。 – 2012-08-01 13:41:23

回答

0

我認爲這是不可能的我的要求。我已經在afterUnmarshal()方法下編寫了一個轉換邏輯,用於根據需要將常規解組轉換爲轉換。