2014-07-09 104 views
1

我对如何处理JAXB中的子根感到困惑。我知道,根类看起来是这样的:JAXB子根元素

package cool.java 

@XmlRootElement 
public class Snap { 

    @XmlElement 
    private Crackle foo; 
    .... 
} 

和捕捉的一个子类是这样的:

package cool.java 

@XmlRootElement(namespace = "cool.java.Snap") 
public class Crackle { 

    @XmlElement 
    private Pop foo; 
    ... 
} 

当我感到困惑的是如何诠释它有裂纹作为流行音乐类它的直接根源。我还会将它指向主根吗?

@XmlRootElement(namespace = "cool.java.Snap") 

我是否指定Pop的直接根?

@XmlRootElement(namespace = "cool.java.Snap.Crackle") 
+0

据我所知,你不需要任何特殊的注释(除了'@ XmlType'),只是参考'Pop'在'Crackle'(顺便说一句这是不是'Snap'但元素的子类)。 – Thomas

+0

根据您的模式,您不需要指定任何可以满足@XmlElement(required = true)或@XmlElement的任何内容。 –

回答

0

对于Crackle类,您不需要任何注释。 Crackle实例的内容将与对应于保存该实例的字段/属性(即foo)的元素嵌套。

<snap> 
    <foo> 
     <foo>...</foo> 
    </foo> 
</snap>