如何在javajaxb中将元素组合在一起而不嵌套?

如何在javajaxb中将元素组合在一起而不嵌套?,java,jaxb,Java,Jaxb,我试图找到一种方法,将元素分组在一起,而不嵌套或更改序列化结果。我想这样做有两个主要原因 将相关元素分离到其他文件中以提高代码可读性。例如,min和max元素可以替换为单个范围,以减少混乱,并将范围对象的创建移动到反序列化阶段 将必须始终同时显示的图元视为单个图元可选图元。然后将该元素组与@xmlmelements一起使用,在相互排斥的情况下,我将始终使用(A和B)或(C和D),但决不能同时使用两者 在本例中,foo包含元素(file和bar)、(file和baz)或makeC)。多个(

我试图找到一种方法,将元素分组在一起,而不嵌套或更改序列化结果。我想这样做有两个主要原因

  • 将相关元素分离到其他文件中以提高代码可读性。例如,
    min
    max
    元素可以替换为单个
    范围
    ,以减少混乱,并将
    范围
    对象的创建移动到反序列化阶段

  • 将必须始终同时显示的图元视为单个图元可选图元。然后将该元素组与
    @xmlmelements
    一起使用,在相互排斥的情况下,我将始终使用(A和B)或(C和D),但决不能同时使用两者

在本例中,
foo
包含元素(
file
bar
)、(
file
baz
)或
makeC
)。多个(但不是所有)变体可能共享一些可能使事情变得更困难的元素。此外,它们不是
foo
中的唯一元素,因此将
foo
完全划分为3个独立的类是没有意义的


福安
布拉
等
foo.b
12345
等
1.25
等
下面是一些关于如何存储数据的伪代码。理想情况下,我可以使用一些
@xmlementgroup
注释来表示它们内联在父元素中

@xmlementgroup
公共类文件{
@XmlElement
字符串文件;
@XmlElement(必需=true)
弦杆;
}
@XmlElementGroup
公共类文件B{
@XmlElement
字符串文件;
@XmlElement(必需=true)
整数baz;
}
@XmlElementGroup
公共类CreateC{
@xmlement(name=“makeC”)
浮点数;
}
然后在
Foo
中,我可以委托这些元素的集合,或者将这些元素组视为sum类型

@XmlRootElement
公开课Foo{
//也许是把他们分成总和类型的东西?
@XmlElements({
@XmlElementGroup(FileA.class),
@XmlElementGroup(FileB.class),
@XmlElementGroup(CreateC.class)
})
对象文件源;
//如果只使用了1个变量,那么即使列出所有变量也会更好
@XmlInline
FileA FileA;
@XmlInline
文件b文件b;
@XmlInline
CreateC CreateC;
//Foo包含其他不相关的字段
}
我不确定是否有一种方法可以做到这一点,而无需创建一个类来手动解组数据。可能有一种方法可以通过
@xmlement(namespace=?)
实现这一点,但是我找不到任何引用以这种方式使用它。也许有人知道maven依赖项添加了我从未遇到过的功能