我試圖在Eclipse Galileo中運行的junit測試中從Web服務調用中讀取響應。我能夠成功接收響應,除非響應是SOAP錯誤。然後我得到以下異常: org.xml.sax.SAXParseException:元素類型「SOAP:文本」必須遵循的任一屬性規範「>」或「/>」SAXParseException:元素類型SOAP:文本必須後跟屬性規範,「>」或「/>」
我已經驗證了XML在LiquidXML Studio中針對SOAP 1.2模式進行檢查。
這是SAX似乎令人窒息的XML響應。它已被剝離到最低限度,企圖消除任何明顯的(我甚至確信它沒有任何自我封閉元素):
<SOAP:Envelope xmlns:SOAP="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP_ENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP:Header> </SOAP:Header> <SOAP:Body> <SOAP:Fault> <SOAP:Code> <SOAP:Value>SOAP:Sender</SOAP:Value> <SOAP:Subcode> <SOAP:Value>SOAP:Sender</SOAP:Value> </SOAP:Subcode> </SOAP:Code> <SOAP:Reason> <SOAP:Text xml:lang=""> </SOAP:Text> </SOAP:Reason> <SOAP:Node> </SOAP:Node> <SOAP:Role> </SOAP:Role> <SOAP:Detail> </SOAP:Detail> </SOAP:Fault> </SOAP:Body> </SOAP:Envelope>
任何幫助,將不勝感激。
Envelope中引用的模式確實包含Text元素的xml:lang屬性,這就是爲什麼我提到了在LiquidXML Studio中針對模式進行驗證的原因。有效的響應和SOAP錯誤包括引號字符,所以我知道這不是問題。感謝resoponse。 – Jeff 2010-11-09 04:43:49