我有一个用于验证 XML 文件的 XSD 架构。
在 XSD 模式中,我创建了一个复杂类型,其中包含一个属性组和一个选项,它本身包含一个重复元素“_output”。
我的复杂类型:
<xs:complexType name="base_action">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="_output" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:attributeGroup ref="action"/>
</xs:complexType>
我还有其他元素(带有自己的子元素)继承自该复杂类型。
这种继承元素的一个例子:
<xs:element name="ex_elem" minOccurs="0">
<xs:complexType>
<xs:complexContent>
<xs:extension base="cockpit_base_action">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="to" minOccurs="0"/>
<xs:element name="from" minOccurs="0"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
现在,在 XML 中,这将起作用:
<ex_elem>
<_output/>
<from>0</from>
<to>1</to>
</ex_elem>
但不是这个:
<ex_elem>
<from>0</from>
<_output/>
<to>1</to>
</ex_elem>
或这个 :
<ex_elem>
<from>0</from>
<to>1</to>
<_output/>
</ex_elem>
据我了解,复杂类型的选择不能与继承元素的选择混为一谈。这对我来说是个问题,因为有些地方我想把 _output 放在顶部以外的地方。
我希望能够使用该元素而不必担心序列。有没有办法这样做?