Менее тривиальная часть задания - шаг 1, разбор текста на языке домена (DSL), а не # 2, перетаскивание его на некоторый язык XML.
Надеюсь, вы легко иметь анализатор для DSL (очевидно, этот язык должен быть поставлен на использование где ...), и вы можете быть в состоянии «крюк» ваша логика экспорта/преобразования в этот анализатор. Если это невозможно, вам нужно написать новый парсер.
В зависимости от сложности DSL вы можете написать простой, простой парсер, основанный на нескольких циклах и корпусах коммутаторов.
Для более сложных языков, ANTLR часто является хорошим выбором. В двух словах, одна формализует грамматику DSL, в форме Backus Naur (BNF или фактически EBNF, здесь, то есть, Extended), и ANTLR создает синтаксический анализатор, написанный на выбранном языке выбора (включая Java). Кривая обучения с ANTLR является фактором, который следует учитывать, но в контексте умеренно-чрезвычайно сложного языка, который стоит инвестиций. ANTLR похож, но, на мой взгляд, лучший инструмент, чем GNU Bison, этот последний, однако, тоже выполнит трюк, а также нацелиться на Java.
Если вы знакомы с другими языками, в частности с Python, есть много других инструментов, которые можно использовать для более или менее ad-hoc-парсеров; Я также использовал PyParsing и с радостью рекомендую его.
У вас есть доступ к коду переводчика для DSL? –
для 1. вы можете использовать antlr http://www.nearinfinity.com/blogs/bill_bejeck/learning_antlr_part_i.html для 2. вам нужен XML-сериализатор http://karussell.wordpress.com/2009/09/03/xml -serializers-для-Java / – Karussell