我想避免xsi:在元素中输入并根据某些条件在运行时添加子元素
我将选项元素定义为类型xs:anyType
<xs:complexType name="prod">
<xs:sequence>
<xs:element type="xs:anyType" name="option" minOccurs="0" maxOccurs="1"</xs:element>
</xs:sequence>
</xs:complexType>
在元素映射中使用如下
<xs:element name="mappings">
<xs:complexType>
<xs:sequence>
<xs:element type="prod" name="productionSystem" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
我需要将以下选项类型添加为以下
之一<xs:complexType name="Text">
<xs:sequence>
<xs:element type="xs:short" name="id" />
<xs:element type="xs:string" name="name" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Value">
<xs:sequence>
<xs:element type="xs:short" name="id" />
<xs:element type="xs:string" name="name" />
<xs:element name="psValue" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="value" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
所以基本上一个元素选项可以是Text或Value类型。
我想避免在xml中使用xsi:type
。因此定义为xs:anyType
。然而,在欠缺时间Jaxb Marshalling因错误而失败
&#34;它的任何一个超级类都知道这个背景&#34;。如何确保文本和值在Jaxb上下文中。
有人可以指导相同的。
谢谢, 长香