Если вы думаете, чтобы реализовать решение с Smooks, я просто сослаться некоторую полезную информацию от Smooks' Документация:
Java в текст (XML, CSV, EDI и т.д.)
As изложенные в других частях этого руководства, основная среда исполнения Smooks работает , обрабатывая поток событий SAX, создаваемых входным источником определенного типа (XML, EDI, Java и т. д.) и используя эти события для запуска Визитная логика. В случае источника Java (см. Предыдущий раздел на странице «Java to Java»), Smooks использует XStream для создания этого потока событий SAX .
Иногда, однако, вы просто хотите применить шаблон (например, шаблон FreeMarker) к объектной модели Java Source и производить XML, CSV, EDI и т.д. Вы не хотите брать на себя впустую накладных расходов генерируя поток событий SAX, которые вы не собираетесь использовать. Чтобы сделать это , вам нужно сказать, что среда ядра Smooks не генерирует поток событий . Это можно сделать одним из двух способов.
Позвонив setEventStreamRequired (ложь) на экземпляре JavaSource подается в Smooks.filterSource:
JavaSource javaSource = new JavaSource(orderBean);
// Turn streaming off via the JavaSource...
javaSource.setEventStreamRequired(false);
smooks.filterSource(javaSource, result);
Или путем выключения "http://www.smooks.org/sax/features/generate-java-event-stream" функцию в конфигурации Smooks:
<reader>
<features>
<setOff feature="http://www.smooks.org/sax/features/generate-java-event-stream" />
</features>
</reader>
<!-- Other Smooks configurations e.g. a FreeMarker template... -->
При применении шаблона Freemarker, название шаблонного контекста бобов (т.е. имена, используемые в шаблоне), зависит от типа объекта в JavaSource:
Если объект является карта, то этот экземпляр карты становится шаблонный контекст и поэтому вы можете просто использовать клавиши ввода карты в качестве компонента имена в вашем шаблоне. Для объектов, не относящихся к карте, класс JavaSource принимает Object Class SimpleName и создает из него имя свойства JavaBean. Это имя контекстного компонента, используемого для шаблонов. Итак, если имя класса bean - com.acme.Order, то имя контекстного компонента, для целью шаблонов будет «порядок».
Источник: http://www.smooks.org/guide
Я попытался Smooks но документация и примеры кода, не говоря уже о Java для преобразования ЭОД в любом месте. То же самое касается и других библиотек, о которых я упоминал в вопросе. – kailash
Его упоминаемое здесь: https://issues.jboss.org/secure/attachment/12329888/Smooks_User_Guide.pdf и, как вы могли бы прочитать, вы также можете применить свою собственную логику к smooks для трансформации. :) – Ben
Я единственный, кто не знает, что означает «преобразование Java в EDI»? Какие данные будут преобразованы !? – Gimby