如何编写XSD,应该在简单类型和复杂类型之间进行选择。
例如,所有这些XML:
<a>
<b/>
</a>
和
<a>
<c/>
</a>
和
<a>
100
</a>
(最后一个XML中只允许使用整数)应该有效。
PS:&lt; a&gt;中仅允许一个元素。标签
<a>
<b/>
<c/>
</a>
无效。
答案 0 :(得分:3)
<xs:element name="a">
<xs:complexType mixed="true">
<xs:choice>
<xs:element name="b" type="xs:string" />
<xs:element name="c" type="xs:string" />
</xs:choice>
</xs:complexType>
</xs:element>
希望有所帮助。
编辑:我已更新样本。但是,您不能将第三个示例中的类型限制为整数。 XSD不支持您想要做的事情。
答案 1 :(得分:-1)
可能是这样的:
<xsd:element name="a">
<xsd:complexType>
<xsd:choice>
<xsd:element name="b">
<xsd:complexType/>
</xsd:element>
<xsd:element name="c">
<xsd:complexType/>
</xsd:element>
<xsd:element>
<xsd:simpleType>
<xsd:restriction base="xsd:integer"/>
</xsd:simpleType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
保存情况?