Обновление и решение относительно MOXy версии 2.3.0:
Я опробовал версию 2.3.0 EclipseLink сейчас, и она работает!
Вот мой объект данных, который я сохраняю:
import org.eclipse.persistence.oxm.annotations.XmlCDATA;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name=DialogMessage.ROOTNAME, namespace="...")
public class DialogMessage {
@XmlTransient
public static final String ROOTNAME = "dialog";
@XmlElement(name="content-html", namespace="...")
@XmlCDATA
private String contentHTML = null;
public String getContentHTML() {
return contentHTML;
}
public void setContentHTML(String contentHTML) {
this.contentHTML = contentHTML;
}
}
и MOXy, включающие конфигурационные файлы:
package-info.java
@javax.xml.bind.annotation.XmlSchema(
namespace = "...",
xmlns = {@javax.xml.bind.annotation.XmlNs(prefix = "z", namespaceURI ="...")},
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package com.yourdomain.packagenametodataclass;
и jaxb.properties
:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
Когда я записываю экземпляр DialogMessage в виде XML на диск, XML выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<z:dialog xmlns:z="...">
<z:content-html><![CDATA[<p>sgd <strong>asdf</strong> asdf </p>
<p>asdf</p>]]></z:content-html>
</z:dialog>
Обратите внимание, что "..." - это просто замена любого URI пространства имен, который у вас есть.