Элемент restriction в XML Schema
Определение и использование
Элемент restriction определяет ограничения для simpleType、simpleContent или complexContent.
Информация о элементе
количество出现 | один раз |
Родительский элемент | complexContent |
Содержимое | group、all、choice、sequence、attribute、attributeGroup、anyAttribute |
Грамматика
<restriction id=ID base=QName любые атрибуты > Содержимое для simpleType: (annotation?,(simpleType?,(minExclusive|minInclusive| maxExclusive|maxInclusive|totalDigits|fractionDigits| length|minLength|maxLength|enumeration|whiteSpace|pattern)*)) Содержимое для simpleContent: (annotation?,(simpleType?,(minExclusive |minInclusive| maxExclusive|maxInclusive|totalDigits|fractionDigits| (length|minLength|maxLength|enumeration|whiteSpace|pattern)*)?, ((attribute|attributeGroup)*,anyAttribute?) Содержимое для complexContent: (annotation?,(group|all|choice|sequence)?, ((attribute|attributeGroup)*,anyAttribute?) </restriction>
(Символ объявления в элементе restriction может появляться нулевое или одно.
Атрибут | Описание |
---|---|
id | Опционально. Определяет уникальный ID элемента. |
base | Обязательно. Определяет имена встроенных данных типов, simpleType или complexType элементов, определенных в этом schema (или в других schema, указанных в指定的命名ном пространстве). |
любые атрибуты | Опционально. Определяет любые другие атрибуты с non-schema именем пространства. |
Пример
Пример 1
Следующий пример определяет элемент с именем "age" с ограничениями. Значение "age" не может быть меньше 0 или больше 100:
<xs:element name="age"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType> </xs:element>
Пример 2
Этот пример определяет элемент с именем "initials". Элемент "initials" является простым типом с ограничениями. Допустимые значения - три больших или маленьких литеры от a до z:
<xs:element name="initials"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Пример 3
Этот пример определяет элемент с именем "password". Элемент "password" является простым типом с ограничениями. Значение должно состоять из не менее 5 и не более 8 символов:
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="5"/> <xs:maxLength value="8"/> </xs:restriction> </xs:simpleType> </xs:element>
Пример 4
Этот пример демонстрирует сложный тип определения с ограничениями. Сложный тип "Chinese_customer" наследуется от обычного сложного типа "customer", и у элемента "country" установлено фиксированное значение "China":
<xs:complexType name="customer"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> <xs:element name="country" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="Chinese_customer"> <xs:complexContent> <xs:restriction base="customer"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> <xs:element name="country" type="xs:string" fixed="China"/> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType>