XSD:默认整数值范围

Jef*_*eff 9 xml xsd xml-validation

在XSD文件中定义特定数据类型的元素时是否存在隐含的默认值范围?例如,如果我定义一个integer类型的元素:

<xs:element name="MyIntegerElement" type="xs:integer"/>
Run Code Online (Sandbox Code Playgroud)

这是否具有它将验证的隐含最小值和最大值?我知道我可以明确定义有效范围,如下所示:

<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>
Run Code Online (Sandbox Code Playgroud)

但是如果我在针对此验证XML文件时不这样做,它会默认为一系列有效值吗?我一直在挖掘XSD文档但尚未找到答案.

Fra*_*ulo 7

那么,这取决于数据类型......

如果你看一下w3定义integer:

整数的值空间是无限集{..., - 2,-1,0,1,2,...}

本质上,它意味着,对于整数,默认情况下没有最小/最大值范围,因为可以表示任何整数.

另一方面,对于int:

(...)maxInclusive为2147483647,minInclusive为-2147483648.

这样的例子不胜枚举了longs,shorts等...

您可以在此处详细阅读:http://www.w3.org/TR/xmlschema-2/#typesystem