Сложные типы данных

    Цель: внести изменения в схему, использовав сложный (комплексный) тип.
    Задачи:
    • Создать комплексный тип.
    • Скопировать элементы в созданный комплексный тип.
    • Указать созданный комплексный тип для элемента схемы.
    • Сохранить файл.

    Занятие содержит пример работы с элементом complexType.

    Элемент complexType определяет сложный (комплексный) тип. Элемент сложного типа может содержать другие элементы и/или атрибуты.
    Удобно использовать, если в схеме присутствуют повторяющиеся группы элементов.
    Ознакомиться с атрибутами элемента можно в Справочнике атрибутов.

    По текущей версии схемы элемент Organization с вложенными элементами повторяется и, если понадобится вносить изменения, то нужно будет править сразу в нескольких элементах. Можно оптимизировать этот процесс, создав один тип и применив его к элементам Organization.

    1. В программе Altova XMLSpy откройте свой файл схемы, выберав пункт меню File - Open.

    2. Из контекстного меню кнопки Append необходимо выбрать ComplexType.

    Рисунок 39 - ComplexType

    3. Задать наименование OrganizationType и перейти к созданию вложенных элементов, нажав на пиктограмму рядом с типом.

    Рисунок 40 - пиктограмма типа

    4. Добавить элементы можно через контекстное меню AddChild.

    Рисунок 41 - контекстное меню AddChild

    Или скопировав из элемента СontractRequest/FirstSideContract/Organization.

    Рисунок 42 - элементы типа

    5. Из элементов СontractRequest/FirstSideContract/Organization и СontractRequest/SecondSideContract/Organization удалите вложенные элементы и в окне Details задайте тип OrganizationType.

    Рисунок 43 - тип OrganizationType

    6. Аналогичным образом можно изменить элемент Individual.

    Рисунок 44 - тип IndividualType

    По текущей версии схемы элемент Organization с вложенными элементами повторяется и, если понадобится вносить изменения, то нужно будет править сразу в нескольких элементах. Можно оптимизировать этот процесс, создав один тип и применив его к элементам Organization.

    1. В Блокноте откройте свой ранее созданный файл.

    2. Опишите комплексный тип OrganizationType. Содержимое можно скопировать из элемента СontractRequest/FirstSideContract/Organization.

    Рисунок 45 - OrganizationType

    3. Из элементов СontractRequest/FirstSideContract/Organization и СontractRequest/SecondSideContract/Organization вложенные элементы замените на тип OrganizationType.

    Рисунок 46 - OrganizationType для Organization

    4. Аналогичным образом можно изменить элемент Individual.

    Рисунок 47 - тип IndividualType


    На занятии рассмотрен пример работы с элементом complexType. Создан собственный комплексный тип и задан для элементов СontractRequest/FirstSideContract/Organization и СontractRequest/SecondSideContract/Organization.

    Вопросы для самопроверки:
    1. Элемент complexType может содержать другие элементы?
    2. Элемент complexType может содержать другие атрибуты?
    3. В каких случаях удобно использовать complexType?