0

我正在处理一个需要清理从 SharePoint Web 服务接收到的无效 XML 字符的案例。我知道修复源代码是正确的做法——但是这个问题早在 2008 年就已经报告过了,我还没有发现微软已经为它发布了补丁。

现在,我使用来自 JAX-WS 的 Provider 接口调用 Web 服务。我很好地收到了带有返回 XML 的源,但我一直在努力寻找一种将源转换为有效 XML DOM 的方法。

每次尝试以下伪代码时,都会收到一个异常,抱怨非法 XML 字符:

public void xmlTranform(javax.xml.transform.Source source) {
     StreamResult sr = new StreamResult(new java.io.StringWriter());
     Transformer tf = TransformerFactory.newInstance().newTransformer();
     tf.transform(source, sr);
     ...

是否可以创建自定义 FilterReader 并将其插入到转换中?

或者我可以定制 Marshaller 吗?

将代码注入转换以过滤掉那些无效字符的最佳方法是什么?

4

1 回答 1

1

回答我自己的问题 - 我完全放弃了 JAX。

当接收 SOAP 消息严格遵循标准时,JAX-WS 工作得很好。但是我还没有找到一种方法来让它处理不符合标准的 SOAP 消息(阅读“Microsoft SOAP 消息”)。我使用了直接的 POJO 代码,在其中解决这个问题非常简单。

Br Jan

于 2010-11-09T21:50:33.897 回答