Не понятно что не нравится, сделал тестовый класс по нему все отрабатывает, в том числе и условие с CDATA, которое как раз часто попадает в обсуждение, сначала думал из-за того что вывожу форматированный xml:
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
закометировал строку, не помогло