Совет № 1: избегайте любого использования XSLT.
Опора инструмента отстой. Полученное решение будет неуправляемым.
Совет № 2: устраните все ненужные шаги.
Просто переведите ваш набор результатов (при условии, что вы используете JDBC или его эквивалент) в исходящий XML.
Совет № 3: Предполагайте, что все использование инструмента на основе схемы является неправильным и планируйте соответственно.
Другими словами, просто подделайте это. Если вам нужно избавиться от некоторой мутантной полезной нагрузки SOAP (я знаю, что это избыточно), просто смоделируйте работающее сообщение SOAP и затем превратите его в шаблон. Скорость не отстой.
Тем не менее, лучший / правильный ответ - использовать решение в стиле "XML Writer". Есть несколько.
Лучшее, что я написал, LOX (Легкие объекты для XML) .
Публичный API использует шаблон проектирования Builder. Из-за какой-то магии под капотом невозможно создать искаженный XML.
Обратите внимание: Если XML является ответом, вы задали неправильный вопрос. Иногда мы вынуждены против нашей воли использовать это каким-то образом. Когда это происходит, крайне важно использовать инструменты, которые минимизируют усилия разработчика и улучшают поддержку кода.