Иногда использование строковых констант доставляет больше хлопот, чем оно того стоит. И ИМО, это один из таких примеров.
Но если вы хотите продолжить это, вот несколько идей, которые могут работать для вас:
Использование библиотеки Java DOM для построения XML в памяти с использованием констант Java.
Поместите константы в объект Properties, затем создайте шаблон файла XML, используя Velocity, Freemarker или эквивалентный Java-совместимый язык шаблонов, который расширяет значения свойств в XML.
2a. В некоторых случаях JSP могут использоваться вместо универсального Java-совместимого языка шаблонов.
Создайте XML с заполнителями для именованных констант, затем используйте XSLT для замены заполнителей фактическими значениями.
Но в каждом случае шаги, предпринимаемые вами для использования именованных констант, приводят к хрупкости в других областях, не говоря уже о большем количестве кода и дополнительной обработке. Что возвращает меня к исходной точке ...
РЕДАКТИРОВАТЬ Я думаю, что реальная причина того, что нет действительно хорошего решения этой проблемы, заключается в том, что это действительно сложная проблема.
Чтобы проиллюстрировать, использование JSP для генерации XML (и дисциплины) будет гарантировать, что вы будете использовать только допустимые константы Java, и будет отказоустойчивым по отношению к сгенерированным классам Java. Однако подход JSP не гарантирует, что вы генерируете правильно сформированный XML.
Корень проблемы в том, что вам нужна выразительность встраивания конструкций Java в шаблоны XML в сочетании со статической проверкой корректности как аспектов Java, так и аспектов XML шаблонов. Для этого вам действительно необходима надлежащая лингвистическая поддержка, но в действительности доступные решения просто выводят символы без учета (в данном случае) правил синтаксиса XML.