【发布时间】:2016-02-25 15:14:27
【问题描述】:
我有 CXF 肥皂网络服务。
@Component
@WebService(endpointInterface = "com....MyWs", serviceName="MySrv")
public class MyWsImpl implements MyWs {
@Override
public List<MyModel> get(String customer) {
List<MyModel> models = ...;
return models;
}
}
MyModel 中有一个字段可以是空格 (" "),但解析器会修剪该值并将其序列化为 <mySpaceVal></mySpaceVal>,而我想要 <mySpaceVal> </mySpaceVal>
我该怎么做?
我尝试添加
@XmlAttribute(name="space", namespace="xml")
public final static String space = "preserve";
到 MyModel 以便解析器可以添加 xml:space="preserve" 属性。
但它添加了一个命名空间ns3="xml",并将属性显示为ns3:space="preserve",并且元素显示为空字符串而不是" "
【问题讨论】:
-
你能插入吗 反而?有一个空格字符是一个糟糕的设计,但如果这是你所坚持的,你可能需要使用转义序列。
-
@stdunbar 感谢您的回复,但它不起作用。框架转义了字符串,我最终得到
<mySpaceVal>&amp;nbsp;</mySpaceVal> -
不幸的是,这并不意外。还有什么可以放在那里的吗?空间角色很难单独拥有。像“-s-”或其他字符这样的“哨兵”值怎么样?
-
@stdunbar 不幸的是,这个值来自另一个系统。它可以是一些普通的字符串,如“123”,但“”也是有效的,我必须将它发送给 Web 服务的客户端。
标签: java xml web-services soap jaxb