Практика
- Определить какие реквизиты должны передаваться в xml-документе.
- Создать элементы, определяющие реквизиты.
- Добавить для связи элемены sequence или choice.
- Для простых элементов задать наименование, тип данных, аннотацию.
- Сохранить файл.
- элементом sequence, который требует, чтобы элементы группы появлялись в содержащем их элементе в указанной последовательности.
- элементом choice, который позволяет присутствовать в элементе-контейнере только одному элементу выбранной группы.
- Назовите элемент, предназначенный для вставки комментария/описания элемента.
- Перечислите элементы, предназначенные для связи элементов.
- Назовите основное отличие sequence от choice.
- В схеме можно задать собственный тип данных?
- Аннотацию к элементам обязательно задавать?
Создание элементов схемы
Цель: создать элементы схемы.Задачи:
На занятии объясняется как создавать элементы и связи между ними, указывать тип данных и аннотацию к элементам.
Предметная область
Перед созданием элементов схемы необходимо проанализировать какие сведения должны передаваться в xml-запросах. В данном учебном пособии в качестве примера рассмотрено создание схемы для передачи сведений о договорах на оказание услуг.Договор должен содержать следующие реквизиты: номер, дата, стороны договора, предмет договора, сроки начала и завершения оказания услуг.
Типы данных
Для XML схем определены стандартные типы данных, такие как boolean, string, date и т.д. Также можно создать собственный пользовательский тип.Ознакомиться подробнее с типами данных можно в Справочнике типов данных.
Связи
Элементы могут быть связаны:Аннотация
Элемент annotation предназначен для вставки комментария/описания элементов. Аннотация помогает упростить понимание схемы для остальных участников рабочего процесса.
1. В программе Altova XMLSpy откройте свой файл схемы, выберав пункт меню File - Open.
2. Перейдите на вкладку Schema.
Рисунок 8 - вкладка Schema.
3. Создайте новый элемент, нажав на кнопку Append - Element. 
Рисунок 9 - кнопка Append - Element
4. Перейдите к редактированию элемента, нажав на пиктограмму схемы.
Рисунок 10 - пиктограмма схемы
5. Задайте для элемента имя "СontractRequest". Для этого можно дважды кликнуть по нему левой кнопкой миши (ЛКМ) или кликнуть правой кнопкой миши (ПКМ) и из контекстного меню выбрать Edit - name
Рисунок 11 - Edit - name
или же задать имя в окне Details. 
Рисунок 12 - окно Details
6. Добавьте элемент последовательности sequence. Для этого необходимо кликнуть ПКМ на элемент СontractRequest и из контекстного меню выбрать Add child - Sequence.
Рисунок 13 - пункт меню Add child - Sequence
7. Далее нужно добавить элементы, соответствующие реквизитам договора. Для создания кликните ПКМ на элементе Sequence, из контекстного меню выберите Add child - Element и создайте элементы ContractNumber (номер договора), SigningDate (дата заключения договора), FirstSideContract (первая сторона договора), SecondSideContract (вторая сторона договора), ContractSubject (предмет договора).
Рисунок 14 - созданные элементы
8. Для первой стороны договора (FirstSideContract) добавьте элемент выбора choice. Для этого ПКМ нужно кликнуть на элементе FirstSideContract и из контекстного меню выбрать Add child - choice.
Далее добавьте элементы первой стороны договора.
Рисунок 15 - созданные элементы первой стороны договора
9. Скопируйте элемент choice, созданный на 7 шаге и вставьте в элемент SecondSideContract. Добавьте к выбору второй стороны договора элемент Offer.
Рисунок 16 - созданные элементы второй стороны договора
10. Для элементов ContractNumber, Surname, FirstName, Patronymic, ContractSubject задайте тип данных string, для элементов ОrganizationINN, ОrganizationKPP, ОrganizationOGRN задайте тип данных integer, для элемента Offer задайте тип boolean в окне Details.
Рисунок 17 - окно Details
Ознакомиться подробнее с типами данных можно в Справочнике типов данных.
11. Добавьте аннотацию к созданным элементам. Для этого кликните ПКМ на элементе схемы, из контекстного меню выберите Whole Annotation Data.
Рисунок 18 - Whole Annotation Data
В открывшемся модальном окне после нажатия на кнопку Append поле Content станет доступным для ввода текста аннотации.
Рисунок 19 - кнопку Append
Аналогичным образом можно добавить комментарии/описания для остальных элементов.
Рисунок 20 - аннотация к элементам
2. Перейдите на вкладку Schema.

Рисунок 8 - вкладка Schema.

Рисунок 9 - кнопка Append - Element

Рисунок 10 - пиктограмма схемы

Рисунок 11 - Edit - name

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

Рисунок 13 - пункт меню Add child - Sequence

Рисунок 14 - созданные элементы
Далее добавьте элементы первой стороны договора.

Рисунок 15 - созданные элементы первой стороны договора

Рисунок 16 - созданные элементы второй стороны договора

Рисунок 17 - окно Details
11. Добавьте аннотацию к созданным элементам. Для этого кликните ПКМ на элементе схемы, из контекстного меню выберите Whole Annotation Data.

Рисунок 18 - Whole Annotation Data
В открывшемся модальном окне после нажатия на кнопку Append поле Content станет доступным для ввода текста аннотации.

Рисунок 19 - кнопку Append
Аналогичным образом можно добавить комментарии/описания для остальных элементов.

Рисунок 20 - аннотация к элементам
1. В Блокноте откройте свой ранее созданный файл.
2. Создайте элемент с атрибутом name "СontractRequest".
Рисунок 21 - элемент СontractRequest
3. Создайте элементы ContractNumber (номер договора), SigningDate (дата заключения договора), FirstSideContract (первая сторона договора), SecondSideContract (вторая сторона договора), ContractSubject (предмет договора) в комплексном типе со связью sequence.
Рисунок 22 - созданные элементы
4. Для FirstSideContract и SecondSideContract создайте элементы Organization, Individual со связью choice.
Рисунок 23 - первая и вторая сторона договора
Так как второй стороной договора может быть указано "Оффер", то для элемента SecondSideContract необходимо добавить элемент со связью выбора offer.
5. Для элементов ContractNumber, Surname, FirstName, Patronymic, ContractSubject задайте тип данных string, для элементов ОrganizationINN, ОrganizationKPP, ОrganizationOGRN задайте тип данных integer, для элемента offer задайте тип boolean.
Рисунок 24 - элемент offer
Ознакомиться подробнее с типами данных можно в Справочнике типов данных.
6. Добавьте аннотацию к созданным элементам.
Рисунок 25 - аннотация к созданным элементам
2. Создайте элемент с атрибутом name "СontractRequest".

Рисунок 21 - элемент СontractRequest

Рисунок 22 - созданные элементы

Рисунок 23 - первая и вторая сторона договора
5. Для элементов ContractNumber, Surname, FirstName, Patronymic, ContractSubject задайте тип данных string, для элементов ОrganizationINN, ОrganizationKPP, ОrganizationOGRN задайте тип данных integer, для элемента offer задайте тип boolean.

Рисунок 24 - элемент offer
6. Добавьте аннотацию к созданным элементам.

Рисунок 25 - аннотация к созданным элементам
В итоге выполнения занятия созданы элементы и связи между ними, указаны типы данных и аннотация к элементам.
Вопросы для самопроверки: