有一个在XML Schema,它可以让你把所包含的元素之一Choice Indicator,而不是两个或更多。如果你想3任2,我建议做这样的事情:
<xs:choice>
<xs:element name="fieldname" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="freetext" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="dbtablename" type="xs:string" minOccurs="0" maxOccurs="1" />
</xs:choice>
<xs:choice>
<xs:element name="fieldname" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="freetext" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="dbtablename" type="xs:string" minOccurs="0" maxOccurs="1" />
</xs:choice>
(也许maxOccurs
会阻止你选择同一个元素两次) 如果还是不行,什么都不会,我认为。
编辑:我第一次没有正确理解这个问题。如果你想dbtablename
始终存在与fieldname
或freetext
任何一个,那么这就是答案:
<xs:complexType name="tSome">
<xs:sequence>
<xs:choice>
<xs:element name="fieldname" type="xs:string" />
<xs:element name="freetext" type="xs:string" />
</xs:choice>
<xs:element name="dbtablename" type="xs:string" />
</xs:sequence>
</xs:complexType>
我真的很抱歉,但以前minOccurs标签,那里只有因为我的选择的实现是fieldname和freetext只是可选的。 – 2010-03-29 10:59:02