Java 带有MOXy的jaxb2.x(Eclipselink 2.1.2):将XHTML持久化为元素值
重要提示:使用解决方案更新强> 看Java 带有MOXy的jaxb2.x(Eclipselink 2.1.2):将XHTML持久化为元素值,java,xml,jaxb,moxy,Java,Xml,Jaxb,Moxy,重要提示:使用解决方案更新 看 我希望通过JAXB将XHTML存储为XML的节点值,例如 <p>This is a paragraph</p> 但是,内容被封送为转义代码,之后我无法将其显示为XHTML代码段 首先:我在哪里可以下载MOXy的最新版本?这可能是2.1.2中的一个bug。maven回购协议不知何故不再可用: 该链接位于 感谢有关MOXy 2.3.0版的更新和解决方案: 我现在已经试用了EclipseLink的2.3.0版,它可以工作了 以下是我要保留
我希望通过JAXB将XHTML存储为XML的节点值,例如
<p>This is a paragraph</p>
但是,内容被封送为转义代码,之后我无法将其显示为XHTML代码段
首先:我在哪里可以下载MOXy的最新版本?这可能是2.1.2中的一个bug。maven回购协议不知何故不再可用:
该链接位于
感谢有关MOXy 2.3.0版的更新和解决方案: 我现在已经试用了EclipseLink的2.3.0版,它可以工作了 以下是我要保留的数据对象:
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>
新加坡元asdfasdf
asdf]>
请注意,“…”只是替换您拥有的任何名称空间URI
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
<?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>