2009-01-21 57 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