JAXB - объект маршала со строковым свойством XML

предположим, у меня есть объект со свойством String, который имеет строку XML. как:

class myObject {
    String xml;

    @XmlElement(name = "xml", type = String.class)
    public String getXml() {
        return xml;
    }

    public void setXml(String xml) {
        this.xml = xml;
    }
}

я установил строку XML для этого свойства, например

 myObject.setXml("<xml>bbb</xml>");

теперь я хочу маршалировать его с помощью JAXB, и я получаю:

<xml>&lt;xml&gt;bbb&lt;/xml&gt;</xml>

куда я хочу попасть

<xml>bbb</xml>

как мне это сделать?


person Community    schedule 24.12.2009    source источник


Ответы (2)


Вы используете @XmlAnyElement для этого. Однако сначала вам нужно преобразовать строку XML в структуру DOM и внедрить ее в свою модель, а не необработанную строку XML.

person skaffman    schedule 24.12.2009

Если вы хотите вывести предварительно сконструированный XML (а не только xml, сериализованный как строки, что правильно дает вам JAXB), вам лучше передать его элементу DOM. В противном случае JAXB не может заставить генератор XML выгружать случайный текст без надлежащего экранирования.

Где взять XML? Если речь идет о DOM, это должно быть относительно легко.

person StaxMan    schedule 03.12.2010