Xml 在基序列之前添加序列
我有以下XML:Xml 在基序列之前添加序列,xml,xsd,Xml,Xsd,我有以下XML: <Base> <ElementInBase /> <OtherElementInBase /> </Base> <Derived> <ElementInChildren /> <ElementInBase /> <OtherElementInBase /> </Derived> 但这只允许ElementInChildren位于Base元素之后。您只
<Base>
<ElementInBase />
<OtherElementInBase />
</Base>
<Derived>
<ElementInChildren />
<ElementInBase />
<OtherElementInBase />
</Derived>
但这只允许
ElementInChildren
位于Base元素之后。您只需将Base
定义为元素组,并在派生的复杂类型中引用它:
<xs:group name="Base">
<xs:sequence>
<xs:element ref="ElementInBase" minOccurs="0" maxOccurs="1"/>
<xs:element ref="OtherElementInBase " minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:group>
<xs:complexType name="Derived">
<xs:sequence>
<xs:element name="ElementInChildren" minOccurs="0" maxOccurs="1"></xs:element>
<xs:group ref="Base"/>
</xs:sequence>
</xs:complexType>
这会将儿童中的元素置于Base
中定义的内容之前
请在此阅读我的答案:
<xs:group name="Base">
<xs:sequence>
<xs:element ref="ElementInBase" minOccurs="0" maxOccurs="1"/>
<xs:element ref="OtherElementInBase " minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:group>
<xs:complexType name="Derived">
<xs:sequence>
<xs:element name="ElementInChildren" minOccurs="0" maxOccurs="1"></xs:element>
<xs:group ref="Base"/>
</xs:sequence>
</xs:complexType>