我使用Spring WS和XStreamMarshaller构建XML API。我需要在XML中设置包含特殊字符<
和>
的文本值。 XStream默认情况下会转义此类字符,因此我得到如下输出:
<description><mytag>some text</mytag>
</description>
但是,我需要将此类文本值包装在CDATA中,就像这样:
<description><![CDATA[<mytag>some text</mytag>]]>
</description>
我找不到如何自定义XStreamMarshaller以避免转义特殊字符并改用CDATA的方法。这是我的Spring WS端点的外观:
@PayloadRoot(namespace = NAMESPACE_URI, localPart = METHOD)
@ResponsePayload
public DOMSource handleRequest(@RequestPayload DOMSource source) {
MyRequest request = (MyRequest)xStreamMarshaller.unmarshal(source);
MyResponse response = service.process(request);
DOMResult result = new DOMResult();
xStreamMarshaller.marshal(response, result);
return new DOMSource(result.getNode());
}
我如何自定义xstream封送器以不逃离<
和>
?