Не понятно что не нравится, сделал тестовый класс по нему все отрабатывает, в том числе и условие с CDATA, которое как раз часто попадает в обсуждение, сначала думал из-за того что вывожу форматированный xml:
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
закометировал строку, не помогло
package com.javarush.task.task33.task3309;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
/**
* @author Ivan Kurilov on 26.08.2019
*/
@XmlType(name = "first")
@XmlRootElement
public class First {
@XmlElement(name = "second")
public String item1 = "some string";
@XmlElement(name = "second")
public String item2 = "need CDATA because of <second>";
@XmlElement(name = "second")
public String item3 = "";
@XmlElement(name = "third")
public String item4;
@XmlElement(name = "forth")
public Second[] third = new Second[]{new Second()};
@XmlElement(name = "fifth")
public String item5 = "need CDATA because of \"";
}
class Second {
@XmlElement(name = "second")
public String item1 = "some string";
@XmlElement(name = "second")
public String item2 = "need CDATA because of <second>";
}