Java 在Stax和jaxb中处理CData
我试图在Spring StatxtItemWriter和Jaxb marshaller中编写一个包含CData元素的XML片段。但结果是:Java 在Stax和jaxb中处理CData,java,xml,spring,jaxb,Java,Xml,Spring,Jaxb,我试图在Spring StatxtItemWriter和Jaxb marshaller中编写一个包含CData元素的XML片段。但结果是: 不使用 或转义:替换为和 首先,项目作者: <bean id="userAuthorizationErrorItemWriter" class="org.springframework.batch.item.xml.StaxEventItemWriter"> <property name="rootTagName" va
- 不使用
- 或转义:
替换为
和
<bean id="userAuthorizationErrorItemWriter"
class="org.springframework.batch.item.xml.StaxEventItemWriter">
<property name="rootTagName" value="UserAuthorizationEvent" />
<property name="rootElementAttributes">
<map>
<entry key="xmlns:xsi" value="http://www.w3.org/2001/XMLSchema-instance" />
</map>
</property>
<property name="marshaller" ref="userAuthorizationTypeMarshaller" />
<property name="overwriteOutput" value="true" />
<property name="resource" value="file://C:/TEMP/fichierOUT.xml" />
<property name="transactional" value="false" />
</bean>
写入文件时,我希望将动作值封装到
块中
我尝试使用@XmlJavaTypeAdapter(Adapter1.class)
返回:
public String marshal(String value) {
return "<![CDATA[" + value + "]]>";
}
公共字符串封送处理(字符串值){
返回“”;
}
但是输出被转义了:
<UserAuthorization><Action><![CDATA[first, second, third]]></Action></UserAuthorization>
![CDATA[第一、第二、第三]]
您有什么想法吗?您必须创建一个自定义XML封送拆收器,并注册应作为CDATA输出的元素。看看这个例子是否有用
public String marshal(String value) {
return "<![CDATA[" + value + "]]>";
}
<UserAuthorization><Action><![CDATA[first, second, third]]></Action></UserAuthorization>