Практика
- Задать фиксированное значение для элемента схемы.
- Задать паттерн значения.
- Задать ограничение списком значений (enumeration).
- Сохранить файл.
- Назовите ограничитель, определяющий точное число символов или объектов списка.
- Назовите ограничитель, определяющий верхнюю границу для числовых значений.
- Назовите ограничитель, определяющий точную последовательность приемлемых символов.
- Назовите ограничитель, определяющий список приемлемых значений.
- Назовите ограничитель, определяющий максимальное число символов или объектов списка.
Ограничения
Цель: задать ограничения для элементов схемы.Задачи:
Занятие содержит информацию по возможным ограничениям для элементов схемы, а также на примере рассмотрены некоторые способы ограничений.
Ограничение на минимальное и максимальное значение
maxExclusive определяет верхнюю границу для числовых значений (значение должно быть меньше указанного)
maxInclusive определяет верхнюю границу для числовых значений (значение должно быть меньше или равно указанному)
maxInclusive определяет верхнюю границу для числовых значений (значение должно быть меньше или равно указанному)
Ограничение по выбору значений
enumeration определяет список приемлемых значенийОграничение значения паттерном
pattern определяет точную последовательность приемлемых символов
length определяет точное число символов или объектов списка. Должно быть равно или больше нуля
maxLength определяет максимальное число символов или объектов списка. Должно быть равно или больше нуля
minLength определяет минимальное число символов или объектов списка. Должно быть равно или больше нуля
Ограничение на количество символов
Чтобы ограничить длину значения элемента, следует использовать ограничители length, maxLength и minLength.length определяет точное число символов или объектов списка. Должно быть равно или больше нуля
maxLength определяет максимальное число символов или объектов списка. Должно быть равно или больше нуля
minLength определяет минимальное число символов или объектов списка. Должно быть равно или больше нуля
1. В программе Altova XMLSpy откройте свой файл схемы, выберав пункт меню File - Open.
2. Для элемента SecondSideContract/Offer задайте фиксированное значение true.
Рисунок 26 - фиксированное значение
3. Для элемента ContractNumber задайте паттерн. Для этого кликните ЛКМ по элементу, в окне Facets нажмите на кнопку Append и введите значение [0-9][0-9][a-z].
Рисунок 27 - кнопка Append
Так номер договора может состояить из двух цифр и одной буквы.
Аналогичным образом необходимо задать паттерн для ОrganizationINN, ОrganizationOGRN.
4. Если для предмета договора существует определенный список услуг, то ограничение удобно задавать элементом enumeration. Для этого:
4.1 Кликните ЛКМ по элементу ContractSubject, в окне Facets, на вкладке Enumerations нажмите на кнопку Append и введите значение "InstallationDoor" в появившемся поле.
Рисунок 28 - вкладка Enumerations
4.2 Аналогичным образом добавьте еще две услуги в список: ReplacementPlumbing и ReplacementLamp.
Рисунок 29 - список Enumerations
5. Помимо способа, рассмотренного в пункте 4, ограничение можно задать, создав простой тип и указав его для элемента ContractSubject. Для этого:
5.1 Из контекстного меню кнопки Append необходимо выбрать SimpleType.
Рисунок 30 - SimpleType
5.2 В окне Details задать наименование ContractSubjectType и тип данных token.
Рисунок 31 - окно Details
5.3 Кликните ЛКМ по элементу ContractSubjectType, в окне Facets, на вкладке Enumerations нажмите на кнопку Append и введите значение "InstallationDoor" в появившемся поле.
Рисунок 32 - вкладка Enumerations
5.4 Аналогичным образом добавьте еще две услуги в список: ReplacementPlumbing и ReplacementLamp.
Рисунок 33 - список Enumerations
5.5 Для элемента ContractSubject в окне Details выбрать тип данных ContractSubjectType.
Рисунок 34 - окно Details
2. Для элемента SecondSideContract/Offer задайте фиксированное значение true.

Рисунок 26 - фиксированное значение

Рисунок 27 - кнопка Append
Аналогичным образом необходимо задать паттерн для ОrganizationINN, ОrganizationOGRN.
4. Если для предмета договора существует определенный список услуг, то ограничение удобно задавать элементом enumeration. Для этого:
4.1 Кликните ЛКМ по элементу ContractSubject, в окне Facets, на вкладке Enumerations нажмите на кнопку Append и введите значение "InstallationDoor" в появившемся поле.

Рисунок 28 - вкладка Enumerations

Рисунок 29 - список Enumerations
5.1 Из контекстного меню кнопки Append необходимо выбрать SimpleType.

Рисунок 30 - SimpleType

Рисунок 31 - окно Details

Рисунок 32 - вкладка Enumerations

Рисунок 33 - список Enumerations

Рисунок 34 - окно Details
1. В Блокноте откройте свой ранее созданный файл.
2. Для элемента SecondSideContract/Offer задайте фиксированное значение true.
Рисунок 35 - фиксированное значение
3. Для элемента ContractNumber задайте паттерн [0-9][0-9][a-z]. Так номер договора может состояить из двух цифр и одной буквы. 
Рисунок 36 - описание паттерна
4. Если для предмета договора существует определенный список услуг, то ограничение удобно задавать элементом enumeration.
Рисунок 37 - список Enumerations
В элементе xsd:simpleType определяетcя базовый тип, область значений которого необходимо ограничить, используя элемент xsd:restriction.
В элементе xsd:restriction определяетcя ограничение для базового типа.
5. Помимо способа, рассмотренного в пункте 4, ограничение списка можно задать, создав простой тип и указав его для элемента ContractSubject.
Рисунок 38 - список Enumerations в отдельном типе
2. Для элемента SecondSideContract/Offer задайте фиксированное значение true.

Рисунок 35 - фиксированное значение

Рисунок 36 - описание паттерна

Рисунок 37 - список Enumerations
5. Помимо способа, рассмотренного в пункте 4, ограничение списка можно задать, создав простой тип и указав его для элемента ContractSubject.

Рисунок 38 - список Enumerations в отдельном типе
На занятии ознакомились с возможным ограничениям для элементов схемы. На примере рассмотрены некоторые способы ограничений: задали фиксированное ограничение для элемента Offer, задали ограничение с помощью паттерна для элемента ContractNumber и ограничение списком доступных значений для элемента ContractSubject.
Вопросы для самопроверки: