在我的架构文件中,我使用元素的序列定义了组。
<group name="argumentGroup">
<sequence>
<element name="foo" type="double" />
<element name="bar" type="string" />
<element name="baz" type="integer" />
</sequence>
</group>
然后我像这样引用这个组:
<element name="arguments">
<complexType>
<group ref="my:argumentGroup"/>
</complexType>
</element>
是否可以在某个其他位置引用组但是限制它,因此它是选择而不是序列。我想重用它的位置只允许其中一个 Elements 。
<element name="argument" minOccurs="0" maxOccurs="1">
<complexType>
<group name="my:argumentGroup">
<! -- Somehow change argumentGroup sequence to choice here -->
</group>
<complexType>
</element>
答案 0 :(得分:5)
不,您需要定义一个不同的组。
答案 1 :(得分:2)
没有。你不能用组来做这件事。要获得这种类型的可重用性,请使用复杂类型而不是组来定义元素序列(foo,bar,baz)。
使用限制将此复杂类型分配给架构中的元素。但是,您需要使用基本复杂类型来使用choice元素。
似乎使用限制,您可以将choice元素更新为限制中的序列。但是,如果使用序列定义基本复杂类型,则将受限元素更新为选项将导致架构验证失败。