用XML格式表示

时间:2008-11-21 20:14:09

标签: soap xml-serialization

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>

2 个答案:

答案 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解析器的代码的一部分,就像在代码示例中一样吗?