这让我很困惑,就是如果我有一个如下的架构,
<xs:element name="api">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="a" minOccurs="1" />
<xs:element ref="b" minOccurs="1" />
<xs:element ref="c" minOccurs="1" />
CASE1:就像
<xs:choice maxOccurs="unbounded">
JAXB&#34; xjc -p SomePackageName -d。 ....&#34;会在Api.java中生成一个变量,例如
protected List<Object> aOrBOrC;
CASE2:但是,如果我将其更改为
<xs:choice maxOccurs="1">
JAXB生成
protected A a;
protected B b;
protected C c;
我的问题是在CASE1中,如何单独检索A,B和C的值,因为它只给出了一个变量,尽管它是一个列表。
由于
答案 0 :(得分:0)
这样做是为了在将对象编组回XML时保留顺序。
根据您的XML Schema,以下文档是有效的(由于选择中的maxOccurs="unbounded"
,它不能由多个属性表示。
<api>
<b/>
<b/>
<c/>
<a/>
<b/>
<c/>
</api>