如何解决XSD:具有相同元素名称的多种类型
| 我正在使用xsd进行xml验证。我需要用两种类型描述一个元素。 <xsd:choice>
<xsd:element name=\"num\" minOccurs=\"1\" type=\"xsd:integer\" fixed=\"0\"/>
<xsd:element name=\"num\" minOccurs=\"1\" type=\"xsd:positiveInteger\"/>
</xsd:choice>
当我以num = 0验证xml时,验证成功,但是当我以num value = 1验证xml或更大时,验证失败并显示错误。如何正确描述这种情况?
解决方法
我将在此用例中使用xs:nonNegativeInteger:
<xs:element name=\"num\" type=\"xs:nonNegativeInteger\">
如果您希望元素支持多种类型,则可以使用并集:
<xs:element name=\"num\" default=\"0\">
<xs:simpleType>
<xs:union memberTypes=\"xs:integer xs:positiveInteger\" />
</xs:simpleType>
</xs:element>
,您不能在两个具有相同名称和不同类型的复杂类型中包含元素粒子(如果要查找,此规则称为\“ Element Declarations Consistent \”)。部分原因是XSD不仅用于验证,而且还用于数据输入,例如在Java数据绑定中。
但是我认为您在这里寻找的是联合类型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。