Примеры редактора связей XML

Редактор связей XML - это визуальный инструмент преобразования данных, предназначенный для преобразования любой комбинации схемы XML, DTD или документов XML и создания развертываемого документа преобразования. Можно преобразовать документы, основанные на XML, графически путем соединения элементов исходного документа с элементами целевого документа. Можно расширить встроенные функции преобразования с помощью выражений XPath и шаблонов XSLT. Этот инструмент преобразования автоматизирует создание кода XSL и производит документ преобразования на основе предоставленной информации преобразования.
Примеры преобразования Описание
Преобразование заказа на покупку в заказ на доставку В этом примере показан бизнес-сценарий, в котором два бизнес-отдела должны обмениваться информацией без ущерба для текущей деятельности. В этом сценарии документ заказа на покупку из отдела продаж преобразуется в документ заказа на доставку в отделе логистики. Данное связывание состоит из следующих ключевых преобразований:
  • Перемещение
  • Концентрация
  • Внутреннее преобразование
  • Подстрока
  • Группа
  • Другое
Перемещение В этом примере показано, как значение элемента исходного документа переносится в элемент целевого документа.
Концентрация В этом примере показано, как значения из набора элементов исходного документа объединяются в одно значение элемента в целевом документе.
Локальное преобразование В этом примере показано, как создать преобразование внутри преобразования для возможности преобразования сложных элементов в собственном контексте.
Подстрока В этом примере показано, как разбить значение элемента исходного документа и скопировать результат в элемент целевого документа.
Группа В этом примере показано, как сгруппировать элементы исходного документа и сохранить результат в целевом документе.
Другое В этих примерах показано, каким образом можно расширить встроенные функции преобразования инструмента связывания с помощью выражений XPath.

Преобразование заказа на покупку в заказ на доставку

В этом примере документ заказа на покупку из отдела продаж должен быть обработан в отделе логистики для получения документа заказа на доставку.
  1. Для запуска мастера преобразования XML выберите: Файл > Создать > Другое > XML > Преобразование данных. Нажмите кнопку Далее.
  2. В окне Создать файл преобразования данных щелкните на папке XMLMappingExamples. В поле Имя файла введите MyOrderMapping.map и нажмите кнопку Далее.
  3. Рядом с панелью ввода Корневой нажмите кнопку Добавить.
  4. В списке Тип файлов выберите Схема XML, а затем нажмите Обзор. Разверните XMLMappingExamples, выберите PurchaseOrder.xsd и нажмите OK.
  5. На панели Глобальные элементы и типы в качестве исходного корневого элемента выберите PurchaseOrder и нажмите OK.
  6. Рядом с панелью вывода Корневой нажмите кнопку Добавить.
  7. В списке Тип файлов выберите Схема XML, а затем нажмите Обзор. Разверните XMLMappingExamples, выберите ShippingOrder.xsd и нажмите OK.
  8. На панели Глобальные элементы и типы в качестве целевого корневого элемента выберите ShippingOrder и нажмите OK.
  9. Нажмите кнопку Далее.
  10. Рядом с полями ввода примера данных для панели тестирования нажмите Добавить. Щелкните на PurchaseOrder.xml и нажмите OK.
    Прим.: Для тестирования преобразований используйте пример файла ввода XML.
  11. Нажмите кнопку Готово.

Перемещение

В этом примере значение элемента OrderID в документе PurchaseOrder переносится в значение атрибута PurchaseOrderReference в документе ShippingOrder.
  • Если он еще не открыт, щелкните правой кнопкой мыши на файле MyOrderMapping.map и выберите Открыть. Откроется редактор преобразований.
  • В редакторе преобразований выберите элемент OrderID в разделе PurchaseOrder и с помощью указателя мыши перенесите его в атрибут PurchaseOrderReference в разделе ShippingOrder.
Преобразование Перемещение

Концентрация

В этом примере элементы Имя, Второе имя и Фамилия в документе PurchaseOrder объединяются в одно значение элемента CustomerName в документе ShippingOrder.
  1. В PurchaseOrder разверните элемент Customer.
  2. В PurchaseOrder выберите элемент FirstName и с помощью указателя мыши перенесите его в элемент CustomerName в разделе ShippingOrder.
  3. Добавьте элемент LastName:
    1. В PurchaseOrder выберите элемент LastName и с помощью указателя мыши перенесите его в поле типа преобразования Перемещение между PurchaseOrder и ShippingOrder. Откроется окно Помощник выбора соединения.
    2. В окне Помощник выбора соединения нажмите Основное соединение.
  4. Добавьте элемент MiddleInitial:
    1. В PurchaseOrder выберите элемент MiddleInitial и с помощью указателя мыши перенесите его в поле типа преобразования Конкатенация между PurchaseOrder и ShippingOrder. Откроется окно Помощник выбора соединения.
    2. В окне Помощник выбора соединения нажмите Основное соединение. Окно закроется и тип преобразования изменится на Конкатенация.
    Преобразование Конкатенация
  5. Щелкните правой кнопкой мыши на поле Конкатенация и выберите Показать в > Панель свойств.
  6. На панели Свойства перейдите на вкладку Порядок. На панели Вход щелкните на панели Свойства. Выберите MiddleInitial: string, а затем щелкните на значке стрелки вверх Переупорядочить, чтобы изменить порядок объединяемых строк.
    Совет: Можно настроить параметры объединения, задающие порядок, ограничители, префикс и постфикс.
    Преобразование конкатенации с измененным порядком

Локальное преобразование

В этом примере как в исходном, так и в целевом документе содержится сложный элемент ShippingAddress.

  1. В PurchaseOrder разверните элемент ShippingInfo.
  2. В PurchaseOrder выберите элемент ShippingAddress и с помощью указателя мыши перенесите его в элемент ShippingAddress в разделе ShippingOrder.Локальное преобразование
  3. Измените Локальное преобразование, щелкнув на ссылке в открывшемся информационном окне, или щелкнув на значке редактирования в верхнем правом углу поля типа преобразования Локальное преобразование. Откроется редактор для локального преобразования.
  4. Необходимо указать преобразования для каждого подэлемента ShippingAddress:
    1. Сопоставьте элементы StreetNumber, StreetAddress и Apartment в PurchaseOrder элементу StreetAddress в ShippingOrder:
      1. Щелкните на элементе StreetNumber и перенесите его в элемент StreetAddress.
      2. Щелкните на элементе StreetName и с помощью указателя мыши перенесите его в поле типа преобразования Перемещение. Откроется окно Помощник выбора соединения.
      3. В окне Помощник выбора соединения нажмите Основное соединение. Окно закроется и тип преобразования изменится на Конкатенация.
      4. Щелкните на элементе Apartment и с помощью указателя мыши перенесите его в поле типа преобразования Конкатенация. Откроется окно Помощник выбора соединения.
      5. В окне Помощник выбора соединения нажмите Основное соединение.
    2. Щелкните на элементе PostalCode в PurchaseOrder и с помощью указателя мыши перенесите его в элемент PostalCode в ShippingOrder.
    3. Щелкните на элементе Province в PurchaseOrder и перенесите его в элемент Province в ShippingOrder. Сведения о локальном преобразовании
  5. Для того чтобы вернуться на главную панель преобразований, щелкните на значке стрелки в правой верхней части панели локального преобразования.

Подстрока

В этом примере элемент OrderDate хранится как один объект типа Дата в документе заказ на покупку, но в документе заказ на доставку тот же элемент OrderDate разбивается на подчиненные элементы Год, Месяц и День целочисленного типа. С помощью настройки соответствующих параметров преобразования подстроки можно получить значения год, месяц и день из элемента OrderDate заказа на покупку и сохранить эти значения в соответствующих элементах заказа на доставку.

  1. В ShippingOrder разверните элемент OrderDate.
  2. В PurchaseOrder выберите элемент OrderDate и с помощью указателя мыши перенесите его в элемент Year в разделе ShippingOrder.
    1. Щелкните на стрелке выпадающего меню в поле типа преобразования. Разверните Строковые функции и выберите Подстрока.
    2. Щелкните правой кнопкой мыши на поле типа преобразования Подстрока и выберите Показать в > Панель свойств.
    3. На панели Свойства перейдите на вкладку Общие.
    4. В поле Ограничитель введите -.
    5. В поле Индекс подстроки введите 0.
  3. В редакторе преобразований выберите элемент OrderDate и с помощью указателя мыши перенесите его в элемент Month.
    1. Щелкните на стрелке выпадающего меню в поле типа преобразования. Разверните Строковые функции и выберите Подстрока.
    2. На панели Свойства перейдите на вкладку Общие.
    3. В поле Ограничитель введите -.
    4. В поле Индекс подстроки введите 1.
  4. В редакторе преобразований выберите элемент OrderDate и с помощью указателя мыши перенесите его в элемент Day.
    1. Щелкните на стрелке выпадающего меню в поле типа преобразования. Разверните Строковые функции и выберите Подстрока.
    2. На панели Свойства перейдите на вкладку Общие.
    3. В поле Ограничитель введите -.
    4. В поле Индекс подстроки введите 2.
Преобразование Подстрока
Совет: Преобразования Подстрока или преобразования Объединение можно применять к элементам и атрибутам любого типа, а не только типа строка.

Группа

В этом примере с каждым продуктом в заказе на покупку связан приоритет доставки, в то время как в заказе на доставку товары сгруппированы по элементам раздела приоритетов доставки. С помощью преобразования Группа можно сгруппировать продукты в заказе на покупку по приоритетам доставки и связать полученную группу с элементом в заказе на доставку. В приоритетах группы можно задать параметры группировки, а также критерии упорядочения и сортировки.
  1. В ShippingOrder разверните элемент OrderSections.
  2. В PurchaseOrder выберите элемент Product и с помощью указателя мыши перенесите его в элемент OrderSection в разделе ShippingOrder.
  3. Щелкните на стрелке выпадающего меню в поле типа преобразования и выберите группа в разделе Базовые преобразования. Преобразование Группа
    1. Щелкните правой кнопкой мыши на поле типа преобразования Группа и выберите Показать в > Панель свойств.
    2. На панели Свойства выберите ShippingPriority: String на панели Product.
    3. Нажмите кнопку Добавить.
  4. В редакторе преобразований измените сведения Группа, щелкнув на значке редактирования в правом верхнем углу поля типа преобразования Группа. Откроется редактор для элемента OrderSection.
  5. На панели сведений OrderSection разверните элемент OrderItem.
  6. На панели сведений Группа выполните следующие операции перемещения:
    1. Щелкните на элементе ID в разделе Product и перенесите элемент Identifier в OrderSection.
    2. Щелкните на элементе Price в разделе Product и перенесите элемент Price в OrderSection.
    3. Щелкните на элементе Description в разделе Product и перенесите элемент Name в OrderSection.
    4. Щелкните на элементе Quantity в разделе Product и перенесите элемент Quantity в OrderSection.
    5. Щелкните на элементе ShippingPriority в разделе Product и перенесите элемент Priority в OrderSection.
    Преобразования сведений группы
  7. Для того чтобы вернуться на главную панель преобразований, щелкните на стрелке в правой верхней части преобразования группы.

Другое

В этом примере документ заказ на доставку содержит атрибут NumberOfProducts для указания общего числа продуктов в заказе. Для того чтобы в атрибуту NumberOfProducts было присвоено значение, необходимо вычислить итоговую сумму продуктов из заказа на покупку с помощью элемента quantity. С помощью выражения XPath можно выполнить операцию сложения, используя преобразование Другое. Результат будет сохранен в целевом атрибуте NumberOfProducts.
  1. Щелкните на элементе PurchaseOrder и с помощью указателя мыши перенесите его в элемент NumberOfProducts в ShippingOrder. Тип преобразования установлен как Custom XPath. Преобразование Custom XPath
  2. Щелкните правой кнопкой мыши на поле типа преобразования Custom XPath и выберите Показать в > Панель свойств.
  3. На панели Свойства перейдите на вкладку Общие, а затем нажмите Изменить.
  4. В окне Редактор выражений XPath введите sum(Product/Quantity), а затем нажмите OK. Свойство преобразования Custom XPath

Комментарии