2009-01-21 59 views
3

我有一个Web服务和客户端,它们传递的字符串包含字符引用,如 (0x1A的)。这些在XML 1.0中无效,但在XML 1.1中有效。由于这些字符引用,Axis的XML解析器会抛出异常。有没有办法强制它以XML 1.1的形式解析响应,或者插入XML声明? (目前还没有。)我使用处理程序进行了研究,但我的理解是,在XML已被解析之后它们会被调用。在Axis2中使用XML 1.1

回答

1

你过关了InputStream还是Reader?如果是这样,你可以将源码包装到另一个类中(例如BufferedReader作品),但用它来删除不必要的字符。

1

我想你会遇到一个相当艰难的时刻。我的理解是,WSDL 2.0标准是建立在XML 1.0上的。那么,您打算用WSDL描述自己的服务(假定XML 1.0),然后开始向您发送带有XML 1.1字符的邮件?

定义Axis2服务时,可以定义它在services.xml文件中具有的处理程序。例如在this page他们有一个使用org.apache.axis2.receivers.RawXMLINOutMessageReceiver的服务......我知道这不是你想要做的,但也许这是一个开始寻找或思考的地方。

+1

存在一大堆问题。基本上,这归结于MS Word“Smart Quotes”和EBCDIC不混用的事实。 *不寒而栗* 它不应该返回0x1A字符,但它是。我们应该能够通过只有一个有趣的角色而不是完全死亡来更好地处理它。 – 2009-01-21 20:48:49