тильда в XML - PullRequest
       32

тильда в XML

1 голос
/ 21 ноября 2008

Является ли тильда допустимым символом в сообщении XML SOAP? Я получаю SAXParseException: содержимое не разрешено в прологе. Я включил большую часть 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 ]

2 голосов
/ 21 ноября 2008

Я не уверен в сообщениях SOAP, но при обработке файлов XML одна из возможных причин появления этого сообщения об ошибке - наличие BOM (маркер порядка байтов) в начале файла - некоторые синтаксические анализаторы XML не могут справиться с этим, если они не настроены или не вызваны правильно. Проверьте это (используя шестнадцатеричный редактор) и попробуйте, что произойдет, если вы удалите его.

Например, в Python необходимо открыть XML-файл в кодировке UTF-8, используя codecs.open(filename, "UTF-8") вместо open(filename), чтобы убедиться, что спецификация, если имеется, обрабатывается правильно.

1 голос
/ 21 ноября 2008

Является ли тильда допустимым символом в сообщении XML SOAP?

Да. Сообщение об ошибке указывает на другой источник ошибок («пролог»). Возможно, HTTP-заголовок является частью кода, отправляемого парсеру SAX, как в вашем примере кода?

...