假设我的架构中有一个自定义数据类型:
<xs:element name="Fruit">
<xs:complexType>
<xs:sequence>
<xs:element ref="Name"/>
<xs:element ref="Supplier"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Name" type="xs:NCName"/>
<xs:element name="Supplier" type="xs:string"/>
在架构的其他地方,我想需要 Fruit 的特定实例,所以我有类似以下 XML 文件的内容:
<fruits>
<common>
<!-- the common section should always include Fruits with these Names -->
<Fruit>
<Name>apple</Name>
<Supplier>Shady Orchard</Supplier>
</Fruit>
<Fruit>
<Name>orange</Name>
<Supplier>Florida Orange Co.</Supplier>
</Fruit>
<Fruit>
<Name>banana</Name>
<Supplier>Bananaland</Supplier>
</Fruit>
</common>
<exotic>
<Fruit>
<Name>kiwano</Name>
<Supplier>Fancy Fruits</Supplier>
</Fruit>
<Fruit>
<Name>rambutan</Name>
<Supplier>Indonesia Fruit Co.</Supplier>
</Fruit>
<!-- the list goes on... -->
</exotic>
</fruits>
我知道我可以像这样在我的文件中定义异国情调的部分:
<xs:element name="exotic">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="Fruit"/>
</xs:sequence>
</xs:complexType>
</xs:element>
但是我如何定义公共部分,以便始终需要Fruit
名称为apple、orange和banana的 s ?