Какие символы недопустимы (если не закодированы) в атрибуте XML? - PullRequest
45 голосов
/ 15 мая 2009

Не могу поверить, что не могу найти эту информацию легко доступной, поэтому:

1) Какие символы нельзя включить в атрибут XML без их кодирования объекта?

Очевидно, вам нужно кодировать кавычки. А как насчет < и >? Что еще?

2) Где именно находится официальный список?

Ответы [ 3 ]

50 голосов
/ 15 мая 2009

Вот определение , что разрешено в значении атрибута .

'"' ([^<&"] | Reference)* '"'  |  "'" ([^<&'] | Reference)* "'" 

Итак, вы не можете иметь:

  • тот же символ, который открывает / закрывает значение атрибута ( либо ' или ")
  • голый амперсанд (& должен быть &amp;)
  • левая угловая скобка (< должна быть &lt;)

Вы также не должны использовать никакие символы , которые прямо не разрешены в любом месте XML-документа (например, фиды форм и т. Д.).

5 голосов
/ 15 мая 2009

Согласно (2) текущей рекомендации , особенно в отношении символьных данных и разметки , они представляют собой (1) амперсанд (&), левая угловая скобка (<), право угловая скобка (>) и одинарные кавычки ('') и двойные кавычки (").

1 голос
/ 15 мая 2009

См. 2,2 символа в «Расширяемый язык разметки (XML) 1.0 (третье издание)» .

Обратите внимание, что, по крайней мере, в .NET, если вы используете API-интерфейсы XML для работы с XML, вам не придется об этом беспокоиться. Это причина не рассматривать XML как текст.

...