FreeMarker имеет неприятную зависимость от AWT . Это делает невозможным использование с такими вещами, как Google App Engine.
Я предпочитаю использовать StringTemplate для всех моих потребностей в шаблонах Java. Это единственная система шаблонов на основе Java, которая строго отделяет логику от шаблона.
StringTemplate - это движок шаблонов Java (с портами для C #, Python,
Ruby и Scala) для создания исходного кода, веб-страниц, электронных писем или любых других
другой форматированный текстовый вывод. StringTemplate особенно хорош в
многоцелевые генераторы кода, несколько скинов сайта и
интернационализация / локализации
Его отличительной чертой является , которую он строго соблюдает
разделение вида модели в отличие от других двигателей . Строгое разделение делает
веб-сайты и генераторы кода более гибкие и поддерживаемые; это также
обеспечивает превосходную защиту от вредоносных авторов шаблонов.
Поскольку вы генерируете XML
Другое решение, которое на первый взгляд неочевидно, - это использование JAXB. У нас есть проект, который требует от нас генерации XML, у нас есть очень хорошо определенные XSD-файлы для выходных файлов, создание объектов и их сортировка очень просты и очень безболезненны.