logo
Хабибуллин

Сужение

Сужение простого типа определяется компонентом <restriction>, в котором атрибут base указывает сужаемый простой тип, а в теле задаются ограничения, выделяющие определяемый простой тип. Например, почтовый индекс zip можно задать как шесть арабских цифр следующим образом:

<xsd:simpleType name="zip">

<xsd:restriction base="xsd:string"> <xsd:pattern value="[0-9]{6}" />

</xsd:restriction>

</xsd:simpleType>

Можно дать другое определение простого типа zip как целого положительного числа, находящегося в диапазоне от 100 000 до 999 999:

<xsd:simpleType name="zip">

<xsd:restriction base="xsd:positiveInteger"> <xsd:minInclusive value="100000" /> <xsd:maxInclusive value="999999" />

</xsd:restriction>

</xsd:simpleType>

Теги <pattern>, <maxInclusive> и другие теги, задающие ограничения, называются фасетками (facets). Вот их список:

<maxExclusive> — наибольшее значение, оно уже не входит в определяемый тип;

<maxInclusive> — наибольшее значение определяемого типа;

<minExclusive> — наименьшее значение, уже не входящее в определяемый тип;

<minInclusive> — наименьшее значение определяемого типа;

<totalDigits> — общее количество цифр в определяемом числовом типе — сужении

типа decimal;

<fractionDigits> — количество цифр в дробной части числа;

<length> — длина значений определяемого типа;

<maxLength> — наибольшая длина значений определяемого типа;