Это очень сложный вопрос.
Во-первых, короткий ответ: используйте коммерческий продукт (транслятор/преобразователь EDI).
Для более длительного ответа, существует несколько различных EDI стандарты:
- UN/EDIFACT
- ANSI ASC X12
- Несколько других (см ссылку выше EDI).
Существует также вопрос о том, находится ли EDI в двоичном или XML-формате. Поскольку вы пытаетесь преобразовать его в XML, я возьму первый. (Если это уже в формате XML, схемы доступны по крайней мере для X12.)
Разбор двоичных EDI нетривиальен. Работа с другими требованиями обмена (например, функциональные подтверждения) в сочетании с необходимостью иметь стандартную книгу стандартов на три дюйма на вашем столе для поиска всех сегментов и элементов для одной версии одного стандарта подразумевает «покупку», над "строить".
EDI-переводчики/калькуляторы не являются дешевыми, и есть кривая обучения. Когда ваш торговый партнер меняет версии или стандарты, добавляет документы и сегменты и/или запрашивает новые документы взамен, стоимость оплачивается сама по себе.
Я не в курсе текущего урожая программного обеспечения; поиск по «переводчику EDI» для некоторых из них. Я полагаю, что BizTalk имеет определенную поддержку для этого. Возможно, другие плакаты могут порекомендовать один.
[Jitterbit] (http://www.jitterbit.com/Product/index.php) является своего рода BizTalk и имеет версию с открытым исходным кодом. К сожалению, для EDI-модуля для него требуется платная версия из-за лицензирования. – TonyUser