2012-08-01 50 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()方法下编写了一个转换逻辑,用于根据需要将常规解组转换为转换。

相关问题