tilde是XML SOAP消息中的合法字符吗?我得到一个SAXParseException:prolog中不允许使用内容。我包含了大部分SOAP消息,以防万一我正在咆哮错误的树。
POST /... HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.4
Host: 127.0.0.1:1234
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: ""
Content-Length: 1497
Authorization: Basic b3BlbnBkbTpvdHRvMTIz
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:query soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://localhost">
<where xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">type ~~ 'command'</where>
</ns1:query>
</soapenv:Body>
</soapenv:Envelope>
答案 0 :(得分:2)
我不确定SOAP消息,但在处理XML文件时,此错误消息的另一个可能原因是文件开头是否有BOM (byte order marker) - 某些XML解析器无法处理如果没有正确配置或调用。检查一下(使用十六进制编辑器)并尝试删除它会发生什么。
例如,在Python中,有必要使用codecs.open(filename, "UTF-8")
而不是open(filename)
打开UTF-8编码的XML文件,以确保正确处理BOM(如果存在)。
答案 1 :(得分:1)
在JSP SOAP消息中,tilde是合法字符吗?
是。错误消息指向另一个错误源(“prolog”)。 HTTP标头可能是发送到SAX解析器的代码的一部分,就像在代码示例中一样吗?