URL считается недействительным в XML - PullRequest
2 голосов
/ 08 апреля 2011

Когда я пытаюсь проверить этот XML, я получаю ошибку:

<url>http://example.org/?a=1&b=2</url>

Валидатор говорит: «Ссылка на сущность« b »должна заканчиваться на«; »Разделитель «.в отношении второго знака равенства (=) в строке.

Почему это происходит?Должен ли URL быть закодирован каким-либо образом?

Ответы [ 2 ]

6 голосов
/ 08 апреля 2011

& не допускается в XML, так как он запускает последовательность объектов (обычно именованную ссылку на символ, например &eacute; для é). Последовательности сущностей начинаются с & и заканчиваются ;, а между ними заключено имя сущности.

Чтобы вставить &, запишите следующую последовательность: &amp;.

Есть еще несколько символов, которые должны быть написаны как сущности: двойная кавычка " (&quot;), когда она находится внутри атрибута XML, и угловые скобки <, > (&lt;, &gt;), поскольку они имеют особое значение в XML.

2 голосов
/ 08 апреля 2011

& является защищенным символом в XML.

Вы можете заменить его на сущность &amp;

<url>http://example.org/?a=1&amp;b=2</url> 
...