Collections 具有无序类型的Jaxb序列
使用模式和XML文件,我试图创建一个类型为a的元素,它可以包含类型为a、B和C的嵌套元素。元素类型a、B和C都是类型X的扩展。因此我想在类型a元素内部创建一个元素,并认为可以按任意顺序添加元素a、B或C。只有一个元素可以有嵌套的元素。我喜欢这个实现,因为嵌套元素的顺序对我们的数据模型很重要,并且这些元素在系统中的顺序会不同Collections 具有无序类型的Jaxb序列,collections,jaxb,sequence,Collections,Jaxb,Sequence,使用模式和XML文件,我试图创建一个类型为a的元素,它可以包含类型为a、B和C的嵌套元素。元素类型a、B和C都是类型X的扩展。因此我想在类型a元素内部创建一个元素,并认为可以按任意顺序添加元素a、B或C。只有一个元素可以有嵌套的元素。我喜欢这个实现,因为嵌套元素的顺序对我们的数据模型很重要,并且这些元素在系统中的顺序会不同 <A> <B></B> <B></B> <A> <B&g
<A>
<B></B>
<B></B>
<A>
<B></B>
<B></B>
<C></C>
<C></C>
</A>
<C></C>
</A>
我试着在XSD文件中做一些事情,使其合法化
<xs:complexType name="A">
<xs:complexContent>
<xs:extension base="X" >
<xs:sequence>
<xs:element name="a" type="A" minOccurs="0" />
<xs:element name="b" type="B" minOccurs="0" />
<xs:element name="c" type="C" minOccurs="0" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
我试图使序列只包含抽象类型X的元素,认为我可以在XML文件中使用具体类型A、B和C,但这被标记为一个错误。如果我正确理解您的用例,您可以使用
@xmlementref
注释来利用替代组的XML模式概念
了解更多信息