Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные 3-4.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.72 Mб
Скачать

Лабораторная работа № 6. Отображение схем и генерирование кода с помощью mapforce Установка среды отображения Создание компонента исходной схемы

  1. Щелкните значок (Insert XML Schema/File).

  2. Выберите файл mf-ExpReport.xsd с помощью диалога Open.

Появляется сообщение о необходимости выбора XML файла, обеспечивающего данными для предварительного просмотра.

  1. Щелкните Yes и выберите файл mf-ExpReport.xml.

Появляется компонент исходной схемы на вкладке Mapping.

Щелкните по элементу expense-report и нажмите «*» на цифровой клавиатуре, чтобы раскрыть все узлы.

Щелкните по значку расширения компонента снизу справа и измените размер окна компонента так, чтобы увидеть все узлы.

Создание компонента целевой схемы

  1. Щелкните по значку (Insert XML Schema/File).

  2. Выберите файл ExpReport-Target.xsd с помощью диалога Open.

Появляется сообщение о необходимости выбора XML файла, обеспечивающего данными для предварительного просмотра.

  1. Щелкните No и выберите Company в качестве корневого элемента целевого документа.

Появляется компонент целевой схемы на вкладке Mapping.

  1. Щелкните по элементу Company и нажмите «*» на цифровой клавиатуре, чтобы раскрыть все узлы.

  2. Щелкните по значку расширения компонента снизу справа и измените размер окна компонента так, чтобы увидеть все узлы.

Теперь вы готовы начать отображение узлов исходной схемы на целевую схему.

Отображение узлов схемы

В этом разделе мы будем иметь дело с отображениями между узлами исходной и целевой схемы.

  1. Щелкните по узлу expense-report исходной схемы и начинайте перетаскивание.

Автоматически создается линия коннектора из выходного значка, связанная с указателем мыши.

  1. Поместите указатель мыши на входном значке Company целевой схемы. Создается коннектор между данными узлами.

Коннектор помещается между исходным и целевым компонентами. Таким образом, создается отображение между исходным компонентом и целевым документом.

  1. Используйте вышеописанный метод для создания отображения между узлами Person и Employee.

Авто-отображение

MapForce позволяет вам автоматически связать дочерние узлы, имеющие одинаковые имена.

  1. Щелкните ПКМ на коннекторе Person и выберите «Connect matching children».

Если дочерние узлы автоматически связаны, значит пункт «auto connect child items» активен.

Это открывает диалог «Connect Matching Children».

  1. Активизируйте все CheckBox в диалоге и нажмите ОК.

Отображения для Title и Email создаются автоматически.

  1. Щелкните по вкладке Output чтобы увидеть результат.

Вы увидите, что в полях Title и Email содержатся данные из экземпляра XML-документа.

  1. Щелкните по вкладке Mapping для продолжения отображения.

Использование функций для отображения данных

Цель: объединить данные двух узлов исходной схемы и поместить в один узел целевого документа.

Это будет достигнуто:

  • использованием функции concat для объединения элементов First и Last из исходной схемы;

  • использованием функции constant для размещения символа «пробел» между этими элементами;

  • размещением результата этого процесса в узел Name целевой схемы.

Использование функций для объединения узлов

  1. Щелкните по функции concat из библиотеки core и перетащите на вкладку Mapping.

  1. Создайте коннектор между узлами First и value1 компонента concat.

Щелкните по значку (Insert Constant) на ПИ, для вставки компонента constant.

  1. Введите символ «пробел» в поле ввода и щелкните ОК. Компонент constant находится теперь в рабочей области.

  2. Создайте коннектор между компонентом constant и значком value2 компонента concat.

Щелкните по узлу Last и перетащите коннектор на значок «+» под value2.

Это автоматически добавляет к функции concat еще один элемент (значение), который связывается с узлом Last.

Свяжите значок result компонента concat с узлом Name целевой схемы.

Щелкните по вкладке Output чтобы увидеть результат.

Вы увидите, что имя Person «Fred Landis» находится между тегами <Name> и </Name>. Имена First и Last разделены пробелом.