2
我試圖製作一個XML模式 - 在我看來,這是一個困難的結構。假設我在「成員」標籤中包含這些XML成員。具有不同屬性和元素的相同元素名稱的XML模式
<member name="any_name" tab="any_tab" class="any_class">
<summary>Summary</summary>
</member>
和
<member name="any_name" tab="any_tab">
<type class="class_name">
<member name="Name">
<summary>Summary</summary>
</member>
</type>
</member>
只有成員的名稱屬性是必需的在此上下文中。
我希望能夠驗證這兩個結構。要做到這一點,我試圖定義了兩個複雜類型的:
<xs:complexType name="normalmember">
<xs:sequence>
<xs:element name="summary" minOccurs="1" />
</xs:sequence>
<xs:attribute type="xs:string" name="name" use="required"/>
<xs:attribute type="xs:string" name="tab" use="optional"/>
<xs:attribute type="xs:string" name="class" use="optional"/>
</xs:complexType>
和
<xs:complexType name="typemember">
<xs:sequence>
<xs:element ref="typememberinfo" />
</xs:sequence>
<xs:attribute type="xs:string" name="class" use="required" />
</xs:complexType>
我的問題是,我不能在同一範圍內定義兩個不同類型「成員」元素:
<xs:element name="members">
<xs:complexType>
<xs:sequence>
<xs:element name="member" type="normalmember"></xs:element>
<xs:element name="member" type="typemember"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
如何製作能夠驗證兩種結構的XML模式?