Я понимаю, что некоторые символы должны быть экранированы в XML, и амперсанд является одним из этих символов.
Согласно этому есть только 5 символов, которые должны быть экранированы:
Какие символы мне нужно экранировать в документах XML?
Мой вопрос: если у вас есть амперсанд, а за ним НЕ следует один из них, означает ли это, что XML недействителен?
Причина, по которой я спрашиваю, заключается в том, что я использую веб-сервис, который возвращает это:
<blah></blah>
Я пытаюсь решить, является ли это действительным или недействительным XML. Если это неверно, я попрошу их исправить. Если он действителен, то мой php-код не обрабатывает его правильно, и мне нужно будет это исправить.
Согласно валидации w3schools (http://www.w3schools.com/xml/xml_validator.asp), его недействительным, но я просто хотел убедиться.
Амперсанд также может быть частью числовая ссылка на символ, но этот конкретный персонаж (
) является не разрешено в XML:
[2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
Незначительная нота: ты имеешь в виду хорошо сформированные, не действительный. Увидеть Хорошо сформированный и валидный XML.
Других решений пока нет …