Java XML для проектирования EDI

У меня есть требование преобразовать XML в EDI. Я много искал бесплатные библиотеки с открытым исходным кодом, которые полностью удовлетворяют мои потребности, но не смог найти ни одной.

Поэтому я решил написать свою собственную логику.

Ниже приведены мои требования к приложению, которое я собираюсь выполнить.

Входные данные приложения: XML-данные.

Вывод приложения: EDI (электронный обмен данными) представление XML-данных.

Мне нужно применить некоторые бизнес-правила к XML-данным и сгенерировать представление EDI.

Вот мой дизайн для требования:

  • Java POJO, здесь и далее это исходные POJO, для представления данных xml. Чтобы загрузить данные xml в исходные POJO, я использую JAXB.
  • Java POJO, здесь и далее это целевые POJO, для представления модели EDI.
  • Класс Java, здесь и далее это XmlToEDIBuilder, для кодирования бизнес-правил.
  • Наконец, я использую шаблон FreeMarker, чтобы получить желаемую структуру EDI из целевых POJO.

Мой дизайн выглядит хорошо? Любые предложения действительно помогут мне.


person Ram Bavireddi    schedule 30.01.2015    source источник
comment
Я не думаю, что FreeMarker очень хорошо справляется с EDI. Есть причина, по которой библиотеки EDI не бесплатны. Никто не хочет поддерживать стандарты в своем приложении бесплатно. Вы должны смотреть на картограф, такой как MapForce или Contivo, который генерирует код Java, если вам нужно встроить. Или вам следует рассмотреть другой сопоставитель EDI как масштабируемое автономное решение.   -  person Andrew    schedule 30.01.2015
comment
@Ram, так что ты в итоге сделал. У меня есть такое же требование, когда я должен преобразовать XML в EDI 834. Было бы очень полезно, если бы вы могли поделиться некоторыми идеями здесь   -  person themaster    schedule 28.05.2018


Ответы (1)


Недавно у меня был проект, связанный с разбором и генерацией edifact. Для этой цели я использовал структуру http://www.smooks.org/.

Используя структуру, упомянутую выше, шаги логики вашего приложения могут быть следующими:

  • разобрать XML в POJO
  • используйте предварительно скомпилированные компоненты smooks и ваш POJO для создания желаемой версии edifact

Компоненты Smooks могут быть расширены, если потребуется какой-либо пользовательский и/или специфичный для клиента формат edifact.

Вот пример использования для начала: https://github.com/lunatech-labs/smooks-examples/blob/master/edifact-in-code-manipulation/src/main/java/example/Main.java

person Artyom Rebrov    schedule 28.07.2016