【发布时间】:2010-01-19 20:08:02
【问题描述】:
我正在尝试编写一个允许 XML 以下列方式表达的 XML 模式:
宠物可以同时包含猫和狗元素:
<root>
<pets>
<cat />
<dog />
</pets>
</root>
宠物可以只包含猫或狗元素
<root>
<pets>
<cat />
</pets>
</root>
-----------
<root>
<pets>
<dog />
</pets>
</root>
如果 pets 没有子元素,那么它应该是不存在的:
<root>
</root>
我想出的满足这些条件的最佳架构是这样的:
<xs:element name="pets">
<xs:complexType>
<xs:choice>
<xs:sequence>
<xs:element name="cat"/>
<xs:element name="dog" minOccurs="0"/>
</xs:sequence>
<xs:sequence>
<xs:element name="dog"/>
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
在我看来,对于这样一个简单的概念来说,这似乎太多了。有没有更简单的方法来编写这个模式?谢谢!
【问题讨论】: