Is there an implied default value range when defining an element of a specific data type in an XSD file? For example if I define an element of type integer:
<xs:element name="MyIntegerElement" type="xs:integer"/>
Does this have an implied min and max value that it will validate to? I know I can explicitly define the valid ranges like so:
<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>
But if I don't do this when I validate an XML file against this will it default to a range of valid values? I've been digging around in the XSD documentation but haven't found the answer yet.
Well, it depends on the data type...
If you look at the definition of integer
at w3:
The value space of integer is the infinite set {...,-2,-1,0,1,2,...}
In essence it means that, for integers, by default there is no min/max value range since any integer can be represented.
On the other hand, for an int
:
(...) maxInclusive to be 2147483647 and minInclusive to be -2147483648.
The list goes on for longs
, shorts
, etc...
You can read it in more detail here: http://www.w3.org/TR/xmlschema-2/#typesystem
来源:https://stackoverflow.com/questions/15486246/xsd-default-integer-value-range