在XSD文件中定义特定数据类型的元素时是否存在隐含的默认值范围?例如,如果我定义一个integer类型的元素:
<xs:element name="MyIntegerElement" type="xs:integer"/>
这是否具有将验证的隐含最小值和最大值?我知道我可以明确定义有效范围,如:
<xs:element name="MyIntegerElement">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="16"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
但是如果我在针对此验证XML文件时不这样做,它会默认为一系列有效值吗?我一直在挖掘XSD文档但尚未找到答案。
答案 0 :(得分:7)
嗯,这取决于数据类型......
如果你看definition of integer
at w3:
整数的值空间是无限集{..., - 2,-1,0,1,2,...}
本质上,它意味着,对于整数,默认情况下没有最小/最大值范围,因为任何整数都可以表示。
另一方面,for an int
:
(...)maxInclusive为2147483647和minInclusive -2147483648。
longs
,shorts
等等的列表仍在继续......
您可以在此处详细阅读:http://www.w3.org/TR/xmlschema-2/#typesystem