2017-01-04 1 views
3

Будет ли что-то «ломаться», если я использую числовые объекты вместо обычных рекомендуемых альфа-сущностей для зарезервированных символов в XML?Правильно ли выходить «&», «>» и «<» с &, > и < в XML?

Это часть довольно сложного приложения, которое позволяет пользователям вводить библиографические метаданные через XML, CSV или веб-формы. Эти данные затем могут быть извлечены в XML (с использованием стандарта ONIX) с пользовательскими кодировками: utf-8, win-1252 и т. Д.

Оригинальные программисты (давно ушли сейчас) решили использовать числовые сущности для всех символов, которые не могут быть представлены в выбранной кодировке. XML-зарезервированные символы считаются непередаваемыми при любой кодировке. Им предоставляется одинаковое лечение и кодируются с помощью числовых объектов.

Некоторых пользователей жаловались &, <,> и т.д. кодируются в & # 38 и т.д., вместо того, чтобы использовать обычный альфа-коду, и я хотел бы знать, если эти жалобы имеют какое-либо вещество.

Если я могу избежать копания устаревшего кода, чтобы изменить это поведение, это спасло бы мне много ресурсов.

ответ

5

Да, это нормально, чтобы избежать использования цифровых символов.

Из spec (курсив мой):

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

Вы также можете использовать ссылку шестигранной сущности ...

&amp; = &#38; = &#x26;

&lt; = &#60; = &#x3C;

&gt; = &#62; = &#x3E;

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