问题
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.
回答1:
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