XSD: диапазон целочисленных значений по умолчанию

существует ли подразумеваемый диапазон значений по умолчанию при определении элемента определенного типа данных в 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 документация, но еще не нашли ответа.

1 ответов


Ну, это зависит от типа данных...

если вы посмотрите на определение integer на w3:

пространством значений integer является бесконечное множество {..., -2, -1,0,1,2,...}

по сути это означает, что для целых чисел по умолчанию нет диапазона значений min/max, так как любое целое число может быть представлено.

С другой стороны, на int:

(...) maxinclusive часто встречаются, чтобы быть 2147483647 и minInclusive быть -2147483648.

список можно продолжать longs, shorts, etc...

вы можете прочитать его более подробно здесь:http://www.w3.org/TR/xmlschema-2/#typesystem