2015-03-21 5 views
0

Мне нужно написать сценарий для передачи данных на веб-сервер, и сервер получает данные как XML и отправляет ответы в формате XML. В одном конкретном случае это отправить меня обратно XML:Является ли этот XML действительным?

<operation name="ADD_REQUEST"> 
    <result> 
    <status>Failed</status> 
    <message>Error when performing - ADD_REQUEST - The element type "Details" must be terminated by the matching end-tag "</Details>".</message> 
    </result> 
</operation> 

Это сбоями MSXML.DOMDocument я использую, чтобы разобрать его из-за:

"</Details>" 

встроен в сообщении. Если я вручную отредактирую это на

"&lt;/Details&gt;" 

XML обрабатывает штрафы.

Вопрос в том, является ли синтаксический анализатор MS чрезмерно придирчивым или же сервер отсылает обратно недействительный, то есть неправильно закодированный XML? Если последнее, я буду сука в людях, которые поддерживают сервер (это не то, что у меня есть контроль над собой).

+0

Это не действует в соответствии с http://validator.w3.org –

+0

http://www.w3schools.com/xml/xml_validator.asp говорит тот же –

+1

я голосую, чтобы закрыть этот вопрос как off- потому что он просто запрашивает проверку синтаксиса –

ответ

2

Неверный XML возвращается. spec ясно говорит:

амперсанда (&) и левая угловая скобка (<) не должны появляться в их буквальном виде, кроме случаев, когда используется в качестве разметки разделителей, или в комментарии, инструкции по обработке , или раздел CDATA. Если они необходимы в другом месте, они должны быть экранированы с использованием либо цифровых символов , либо строк «&amp;» и «&lt;» соответственно. Прямоугольная скобка (>) может быть представлена ​​с использованием строки «&gt;» и должна быть совместима с экранированным «&gt;» или символьной ссылкой, когда она появляется в строке «]]> » в содержании , когда эта строка не маркирует конец раздела CDATA .

Смежные вопросы