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

Создание отображений

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

  2. Выберите файл mf-ExpReport.xsd с помощью диалога Open и выберите файл mf-ExpReport. xml в качестве экземпляра XML файла.

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

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

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

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

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

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

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

Убедитесь, что значок неактивен перед созданием следующего отображения.

Создайте следующее отображение между двумя компонентами:

  • Expense-report на Company

  • Person на Employee

  • Last на Name

  • Title на Title

  • Phone на Tel.

  • Email на Email

  • expense-item на expense-item

  • Travel на Travel

  • Trav-cost на Travel-Cost.

Создаваемое отображение показано ниже

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

Пустые теги <expense-item/> генерируются когда дочерние узлы отображаемого родительского узла существуют в исходном файле, но не отображаются на целевую схему. В этом случае отображены только узлы travel родительского узла expense-item. Однако существуют два других дочерних узла: lodging и meal expense. Каждый из этих узлов генерирует пустой тег родителя expense-item.

Дублирование входных узлов

Теперь вы должны дублировать входные узлы, чтобы иметь возможность создавать отображения из различных источников XML файла. Это будет достигнуто:

  • добавлением второго XML файла;

  • созданием отображения от него на те же узлы в целевом XML файле.

Дублирование входных узлов:

  1. Щелкните ПКМ на элементе Employee целевого XML файла.

  2. Выберите Duplicate input.

Второй узел Employee добавляется в компонент как Employee(2).

  1. Щелкните по значку «+», чтобы увидеть узлы, как показано ниже.

Структура нового узла Employee является точной копией оригинала, за исключением тех случаев, когда не имеется выходных значков для дублируемых узлов.

  1. Создайте те же самые отображения, которые были определены для первого XML файла-источника:

  • Person на Employee(2)

  • Last на Name  

  • Title на Title

  • Phone на Tel.

  • Email на Email  

  • expense-item на expense-item

  • Travel на Travel

  • Trav-cost на Travel-Cost.

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

Данные второго отчета по расходам добавлены в выходной файл. Johnson и его расходы за проезд добавлены к элементам расхода Fred Landis в отчет по расходам компании.

Для сохранения сгенерированного выходного файла щелкните по значку (Save), который активизируется при активной вкладке Output.

Файл mf-ExpReport-combined.xml находится mf-ExpReport-combined.xml в папке ..\Map­forceExamples\Tutorial. Он должен быть связан с SPS файлом, чтобы иметь возможность просмотра XML файла в Authentic View Authentic Desktop Edition или XMLSpy.

Для удаления дублированных узлов щелкните ПКМ на дублированном узле и выберите Remove Duplicate.

Чтобы увидеть другие примеры включения дублированных узлов просмотрите файл PersonList.mfd из папки ..\MapForceExamples.

В этом примере:

  • различные элементы документа-источника отображаются на одни и те же узлы в целевом документе Schema/XML;

  • определенные элементы (Manager и т.д.) отображены на родовой узел, используя атрибут «role».