2016-07-06 4 views
2

Я понимаю, что некоторые символы должны быть экранированы в XML, и амперсанд является одним из этих символов.escaping ampersands в XML

В соответствии с этим, есть только 5 символов, которые должны быть экранированы: What characters do I need to escape in XML documents?

Мой вопрос, если у вас есть амперсанд, и это не следует одно из тех, это означает, что XML является инвалид?

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

<blah>&#4;</blah> 

Я пытаюсь решить, является ли он действительным или недействительным XML. Если это недействительно, я попрошу их исправить это. Если это действительно так, то мой PHP-код не обрабатывает его правильно, и мне нужно его исправить.

Согласно валидации w3schools (http://www.w3schools.com/xml/xml_validator.asp), это недействительно, но я просто хотел убедиться.

ответ

1

Амперсанд может также быть частью numeric character reference, но особый характер (&#4;) является не допускается в XML:

Character Range

[2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] 

Minor примечание: Вы имеете в виду хорошо сформированный, а не действительный. См. Well-formed vs Valid XML.

+0

Отличный ответ. Благодарю. – NL3294