SGML-объект

редактировать

В Standard Generalized Markup Language (SGML) entity является примитив тип данных, который связывает строку либо с уникальным псевдонимом (например, с именем, указанным пользователем), либо с зарезервированным словом SGML (например, #DEFAULT). Сущности лежат в основе организационной структуры и определения документов SGML. Спецификация SGML определяет множество типов сущностей, которые различаются квалификаторами ключевых слов и контекстом. Строковое значение объекта может по-разному состоять из обычного текста, тегов SGML и / или ссылок на ранее определенные объекты. Некоторые типы сущностей могут также вызывать внешние документы. Сущности вызываются по ссылке.

Содержание
  • 1 Типы объектов
    • 1.1 Внутренние и внешние объекты
      • 1.1.1 Системные объекты
      • 1.1.2 Сущность документа SGML
  • 2 Синтаксис
  • 3 Символьные сущности
  • 4 См. Также
  • 5 Примечания
  • 6 Ссылки
  • 7 Внешние ссылки
Типы сущностей

Сущности классифицируются как общие или параметры:

  • Общие На сущность можно ссылаться только в содержимом документа.
  • На сущность параметра можно ссылаться только в определении типа документа (DTD).

Сущности также далее классифицируются как проанализированные или неанализируемые :

  • Анализируемый объект содержит текст, который будет включен в документ и проанализирован, если на объект будет сделана ссылка. Сущность параметра может быть только проанализированной сущностью.
  • Не проанализированная сущность содержит данные любого типа, и ссылка на нее приведет к тому, что приложение просто получит уведомление о присутствии сущности; содержимое объекта не будет проанализировано, даже если это текст. Неанализируемая сущность может быть только внешней.

Внутренняя и внешняя сущности

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

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

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

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

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

Синтаксис

Сущность определяется через объявление объекта в документе определение типа документа (DTD). Например:

Эта разметка DTD объявляет следующее:

  • Внутренний общий объект с именем welcome1существует и состоит из строки Hello world.
  • Существует внешний общий объект с именем welcome2, который состоит из текста, найденного в ресурсе, идентифицированном файлом URI : ///hello.txt.
  • Внутренний объект параметра с именем welcome3существует и состоит из строки ¡Hola!.
  • Существует внутренний общий объект с именем welcome4и состоит из строки ¡Hola! означает Hello!.

Имена сущностей должны соответствовать правилам для имен SGML, и существуют ограничения на то, где сущности могут быть указаны renced.

Для ссылки на сущности параметров поместите имя сущности между %и ;. Для ссылки на проанализированные общие сущности имя сущности помещается между «» и «;». Ссылка на неанализируемые сущности осуществляется путем помещения имени сущности в значение атрибута, объявленного как тип ENTITY.

Общие сущности из приведенного выше примера могут быть указаны в документе следующим образом:

'приветствие1;' - это обычная тестовая строка.Содержимое hello.txt выглядит следующим образом: welcome2;На испанском языке welcome4;

При синтаксическом анализе этот документ будет передан нижележащему приложению точно так же как если бы это было написано следующим образом, предполагая, что файл hello.txtсодержит текст Salutations:

'Hello world' - обычная тестовая строка.Содержимое hello.txt: ПриветствиеПо-испански ¡Hola! означает Hello!

Ссылка на необъявленную сущность является ошибкой, если сущность по умолчанию не была определена. Например:

Дополнительные конструкции разметки и параметры процессора могут влиять на то, обрабатываются ли объекты и как. Например, процессор может дополнительно игнорировать внешние объекты.

Символьные сущности

Стандартные наборы сущностей для SGML и некоторых его производных были разработаны как мнемонические устройства, чтобы упростить создание документов, когда есть необходимость использовать символы, которые нелегко набрать или которые не широко поддерживаются устаревшими кодировками символов. Каждый такой объект состоит только из одного символа из универсального набора символов . Хотя на любой символ можно ссылаться с помощью числовой ссылки на символ, ссылка на сущность символа позволяет ссылаться на символы по имени вместо кодовой точки.

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

См. Также
Примечания
Ссылки
  • Гольдфарб, Чарльз Ф. (Ред.). Обзор ISO 8879: WG8 N1855. WG8 and Liaisons, 1996.
  • Гольдфарб, Чарльз Ф. и Юрий Рубинский (ред.). Справочник SGML. Oxford University Press, 1991.
Внешние ссылки
Последняя правка сделана 2021-06-06 03:12:53
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте