Введение

В стандартном обобщенном языке разметки (SGML) сущность — это примитивный тип данных, который связывает строку с уникальным псевдонимом (например, именем, указанным пользователем) или с зарезервированным словом SGML (например, #DEFAULT). Сущности являются основополагающими для организационной структуры и определения документов SGML. Спецификация SGML определяет множество типов сущностей, которые различаются по ключевым квалификаторам и контексту. Значение строки сущности может состоять из обычного текста, тегов SGML и/или ссылок на ранее определенные сущности. Определенные типы сущностей также могут обращаться к внешним документам. Сущности вызываются по ссылке.

Внутренние и внешние организации

Внутренняя сущность имеет значение, которое является либо литеральной строкой, либо разобранной строкой, содержащей разметку и сущности, определенные в том же документе (например, объявление типа документа или поддокумент). В отличие от этого, внешняя сущность имеет объявление, которое ссылается на внешний документ, что требует вмешательства менеджера сущностей для разрешения этой внешней ссылки.

Системные объекты

Декларация сущности может содержать непосредственное значение или представлять собой комбинацию необязательного идентификатора SYSTEM, позволяющего SGML-анализаторам обрабатывать строковое значение сущности как идентификатор ресурса, и необязательного идентификатора PUBLIC, идентифицирующего сущность независимо от конкретного представления. В XML, являющемся подмножеством SGML, декларация сущности не может содержать идентификатор PUBLIC без идентификатора SYSTEM.

Сущность документа SGML

Когда внешняя сущность ссылается на полный документ SGML, в обращающемся документе он известен как сущность документа SGML. Документ SGML представляет собой текстовый документ с разметкой SGML, определенной в прологе SGML (то есть в DTD и поддокументах). Полный документ SGML включает в себя не только сам экземпляр документа, но и пролог, а также, необязательно, декларацию SGML (которая определяет синтаксис разметки документа и объявляет кодировку символов).

Сущности символов

Стандартные наборы сущностей для SGML и некоторых его производных были разработаны как мнемонические средства, чтобы упростить создание документов, когда необходимо использовать символы, которые сложно ввести с клавиатуры или которые недостаточно широко поддерживаются устаревшими кодировками символов. Каждая такая сущность состоит ровно из одного символа из Универсального набора символов. Хотя любой символ можно указать с помощью числовой ссылки на символ, ссылка на сущность символа позволяет ссылаться на символы по имени, а не по кодовой точке. Например, HTML 4 содержит 252 встроенные сущности символов, которые не требуют явного объявления, в то время как в XML их всего пять. XHTML имеет те же пять сущностей, что и XML, но при явном использовании его DTD их количество становится 253 (' является дополнительной сущностью по сравнению с HTML 4).