Введение

В документах SGML, HTML и XML логические конструкции, известные как данные символов и значения атрибутов, состоят из последовательностей символов, в которых каждый символ может отображаться напрямую (представляя сам себя) или может быть представлен последовательностью символов, называемой ссылкой на символ. Существуют два типа таких ссылок: числовая ссылка на символ и ссылка на именованную сущность. В этой статье перечислены ссылки на именованные сущности, допустимые в документах HTML и XML. Ссылка на именованную сущность отсылает к содержимому этой сущности. Объявление сущности создается в документах XML, SGML и HTML (до HTML5) с использованием синтаксиса <!ENTITY name "value"> в определении типа документа (DTD).

Сущности, представляющие специальные символы в XHTML

В XHTML DTD явно декларируются 253 объекта (включая 5 предварительно определенных объектов XML 1.0), расширение которых представляет собой один символ, и которые, следовательно, могут быть неформально названы "символьными объектами". Они (за исключением объекта &apos;) имеют те же имена и представляют те же символы, что и 252 символьных объекта в HTML 4.0. Кроме того, поскольку документы XHTML являются XML, они могут ссылаться на предопределенный объект &apos;, который не входит в число 252 символьных объектов HTML 4.0. Дополнительные объекты любого размера могут быть определены для каждого документа в отдельности. Однако возможность использования ссылок на объекты в XHTML зависит от способа обработки документа: устаревшие сокращенные символьные объекты (без завершающей точки с запятой), унаследованные от HTML 2.0 (и все еще поддерживаемые в HTML 5.0), не поддерживаются в XML 1.0 и XHTML; завершающая точка с запятой должна присутствовать во всех ссылках на объекты, используемых в документах XML и XHTML. Если документ XHTML читается соответствующим процессором HTML 4.0, то безопасно можно использовать только 252 символьных объекта HTML 4.0. Использование &apos; или пользовательских ссылок на объекты может не поддерживаться и приводить к непредсказуемым результатам (рекомендуется использовать вместо этого числовую ссылку на символ &#39;). Если документ читается XML-анализатором, который не читает внешние объекты, то безопасно можно использовать только пять встроенных XML-символьных объектов, хотя другие объекты могут быть использованы, если они объявлены во внутреннем подмножестве DTD. Однако современные XML-анализаторы распознают и реализуют встроенный кэш для ссылок SGML на DTD, используемые всеми стандартными версиями HTML, XHTML, SVG и MathML, без необходимости разбора и обработки внешних DTD по их URL и без необходимости обработки объектов, определенных во внутреннем подмножестве DTD документа. Если документ читается XML-анализатором, который читает внешние объекты и не реализует встроенный кэш для известных DTD, то безопасно можно использовать пять встроенных XML-символьных объектов (и числовые ссылки на символы). Остальные 248 символьных объекта HTML могут быть использованы, если XHTML DTD доступен анализатору в момент чтения документа. Другие объекты также могут быть использованы, если они объявлены во внутреннем подмножестве DTD, и XML-процессор может разбирать внутренние подмножества DTD. Анализаторы HTML 5.0 не могут обрабатывать XHTML-документы, и невозможно определить полностью валидный DTD для HTML5-документов, закодированных синтаксисом XHTML (в частности, невозможно проверить все имена атрибутов, особенно атрибуты "data *"); также все еще невозможно полностью проверить (с использованием стандартных схем W3C для XML, таких как XSD или relax NG) HTML5-документы, представленные синтаксисом XHTML, и в настоящее время требуется пользовательский валидатор, специфичный для HTML 5.0. Из-за особого случая с &apos;, упомянутого выше, только &quot;, &amp;, &lt; и &gt; будут работать во всех ситуациях обработки XHTML.