Редактор связей XML - это визуальный инструмент
преобразования данных, предназначенный для преобразования любой
комбинации схемы XML, DTD или документов XML и создания
развертываемого документа преобразования. Можно преобразовать
документы, основанные на XML, графически путем соединения элементов
исходного документа с элементами целевого документа. Можно расширить встроенные функции преобразования с помощью выражений XPath и шаблонов XSLT.
Этот инструмент преобразования автоматизирует создание кода XSL и
производит документ преобразования на основе предоставленной информации
преобразования.
| Примеры преобразования |
Описание |
| Преобразование заказа на покупку в заказ на доставку |
В этом примере показан бизнес-сценарий, в котором
два бизнес-отдела должны обмениваться информацией без ущерба для
текущей деятельности.
В этом сценарии документ заказа на покупку
из отдела продаж преобразуется в документ заказа на доставку в отделе
логистики.
Данное связывание состоит из следующих ключевых преобразований:- Перемещение
- Концентрация
- Внутреннее преобразование
- Подстрока
- Группа
- Другое
|
| Перемещение |
В этом примере показано, как значение элемента
исходного документа переносится в элемент целевого документа. |
| Концентрация |
В этом примере показано, как значения из набора
элементов исходного документа объединяются в одно значение элемента в
целевом документе. |
| Локальное преобразование |
В этом примере показано, как создать преобразование
внутри преобразования для возможности преобразования сложных элементов
в собственном контексте. |
| Подстрока |
В этом примере показано, как разбить значение
элемента исходного документа и скопировать результат в элемент целевого
документа. |
| Группа |
В этом примере показано, как сгруппировать
элементы исходного документа и сохранить результат в целевом
документе. |
| Другое |
В этих примерах показано, каким образом можно
расширить встроенные функции преобразования инструмента связывания
с помощью выражений XPath. |
Преобразование заказа на покупку
в заказ на доставку
В этом примере документ заказа на покупку
из отдела продаж должен быть обработан в отделе логистики для получения
документа заказа на доставку.
- Для запуска мастера преобразования XML выберите:
. Нажмите кнопку Далее.
- В окне Создать файл преобразования данных щелкните на папке
XMLMappingExamples. В поле Имя
файла введите MyOrderMapping.map и
нажмите кнопку Далее.
- Рядом с панелью ввода Корневой нажмите кнопку
Добавить.
- В списке Тип файлов выберите Схема XML, а
затем нажмите Обзор. Разверните
,
выберите PurchaseOrder.xsd и нажмите
OK.
- На панели Глобальные элементы и типы в качестве исходного
корневого элемента выберите PurchaseOrder и
нажмите OK.
- Рядом с панелью вывода Корневой нажмите кнопку
Добавить.
- В списке Тип файлов выберите Схема XML, а
затем нажмите Обзор. Разверните
,
выберите ShippingOrder.xsd и нажмите
OK.
- На панели Глобальные элементы и типы в качестве целевого
корневого элемента выберите ShippingOrder и
нажмите OK.
- Нажмите кнопку Далее.
- Рядом с полями ввода примера данных для панели тестирования
нажмите Добавить. Щелкните на
PurchaseOrder.xml и нажмите
OK.
Прим.: Для тестирования преобразований используйте
пример файла ввода XML.
- Нажмите кнопку Готово.
Перемещение
В этом примере
значение элемента OrderID в документе PurchaseOrder переносится в
значение атрибута PurchaseOrderReference в документе ShippingOrder.
- Если он еще не открыт, щелкните правой кнопкой мыши на файле
MyOrderMapping.map и выберите Открыть. Откроется редактор
преобразований.
- В редакторе преобразований выберите элемент
OrderID в разделе PurchaseOrder и с помощью
указателя мыши перенесите его в атрибут
PurchaseOrderReference в разделе
ShippingOrder.

Концентрация
В этом примере
элементы Имя, Второе имя и Фамилия в документе PurchaseOrder
объединяются в одно значение элемента CustomerName в документе
ShippingOrder.
- В PurchaseOrder разверните элемент
Customer.
- В PurchaseOrder выберите элемент FirstName
и с помощью указателя мыши перенесите его в элемент
CustomerName в разделе ShippingOrder.
- Добавьте элемент LastName:
- В PurchaseOrder выберите элемент LastName
и с помощью указателя мыши перенесите его в поле типа преобразования
Перемещение между PurchaseOrder и
ShippingOrder. Откроется окно Помощник выбора соединения.
- В окне Помощник выбора соединения нажмите Основное
соединение.
- Добавьте элемент MiddleInitial:
- В PurchaseOrder выберите элемент
MiddleInitial и с помощью указателя мыши
перенесите его в поле типа преобразования
Конкатенация между PurchaseOrder и
ShippingOrder. Откроется окно Помощник выбора соединения.
- В окне Помощник выбора соединения нажмите Основное
соединение. Окно закроется и тип преобразования
изменится на Конкатенация.

- Щелкните правой кнопкой мыши на поле
Конкатенация и выберите
.
- На панели Свойства перейдите на вкладку
Порядок. На панели Вход щелкните на панели
Свойства. Выберите MiddleInitial: string, а
затем щелкните на значке стрелки вверх
Переупорядочить, чтобы изменить порядок
объединяемых строк.
Совет: Можно
настроить параметры объединения, задающие порядок, ограничители, префикс
и постфикс.

Локальное преобразование
В
этом примере как в исходном, так и в целевом документе содержится
сложный элемент ShippingAddress.
- В PurchaseOrder разверните элемент ShippingInfo.
- В PurchaseOrder выберите элемент
ShippingAddress и с помощью указателя мыши
перенесите его в элемент ShippingAddress в
разделе ShippingOrder.

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

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

Совет: Преобразования
Подстрока или преобразования Объединение можно применять к элементам
и атрибутам любого типа, а не только типа строка.
Группа
В этом
примере с каждым продуктом в заказе на покупку связан приоритет
доставки, в то время как в заказе на доставку товары сгруппированы
по элементам раздела приоритетов доставки. С помощью преобразования
Группа можно сгруппировать продукты в заказе на покупку по
приоритетам доставки и связать полученную группу с элементом в заказе
на доставку. В приоритетах группы можно задать параметры группировки, а
также критерии упорядочения и сортировки.
- В ShippingOrder разверните элемент
OrderSections.
- В PurchaseOrder выберите элемент Product и
с помощью указателя мыши перенесите его в элемент OrderSection в разделе ShippingOrder.
- Щелкните на стрелке выпадающего меню в поле типа преобразования и
выберите группа в разделе Базовые
преобразования.

- Щелкните правой кнопкой мыши на поле типа преобразования
Группа и выберите
.
- На панели Свойства выберите ShippingPriority:
String на панели Product.
- Нажмите кнопку Добавить.
- В редакторе преобразований измените сведения Группа, щелкнув на
значке редактирования в правом верхнем углу поля типа преобразования
Группа. Откроется редактор для
элемента OrderSection.
- На панели сведений OrderSection разверните элемент
OrderItem.
- На панели сведений Группа выполните следующие операции
перемещения:
- Щелкните на элементе ID в разделе Product
и перенесите элемент Identifier в
OrderSection.
- Щелкните на элементе Price в разделе
Product и перенесите элемент Price в
OrderSection.
- Щелкните на элементе Description в разделе
Product и перенесите элемент Name в
OrderSection.
- Щелкните на элементе Quantity в разделе
Product и перенесите элемент Quantity в
OrderSection.
- Щелкните на элементе ShippingPriority в
разделе Product и перенесите элемент Priority
в OrderSection.

- Для того чтобы вернуться на главную панель преобразований,
щелкните на стрелке в правой верхней части преобразования группы.
Другое
В этом примере
документ заказ на доставку содержит атрибут NumberOfProducts для
указания общего числа продуктов в заказе. Для того чтобы в атрибуту
NumberOfProducts было присвоено значение, необходимо вычислить итоговую
сумму продуктов из заказа на покупку с помощью элемента quantity. С
помощью выражения XPath можно выполнить операцию сложения, используя
преобразование Другое. Результат будет сохранен в целевом атрибуте
NumberOfProducts.
- Щелкните на элементе PurchaseOrder и с
помощью указателя мыши перенесите его в элемент NumberOfProducts
в ShippingOrder.
Тип преобразования установлен как Custom XPath.

- Щелкните правой кнопкой мыши на поле типа преобразования
Custom XPath и выберите
.
- На панели Свойства перейдите на вкладку
Общие, а затем нажмите
Изменить.
- В окне Редактор выражений XPath введите
sum(Product/Quantity), а затем нажмите
OK.
