Объект SGML - SGML entity

в Стандартный обобщенный язык разметки (SGML), юридическое лицо это примитивный тип данных, который связывает нить с уникальным псевдонимом (например, с именем, указанным пользователем) или с SGML зарезервированное слово (такие как #ДЕФОЛТ). Сущности лежат в основе организационной структуры и определения документов SGML. Спецификация SGML определяет множество типы сущностей, которые различаются квалификаторами ключевых слов и контекстом. Строковое значение объекта может по-разному состоять из простой текст, Теги SGML и / или ссылки на ранее определенные объекты. Некоторые типы сущностей могут также вызывать внешние документы. Сущности называется по ссылке.

Типы сущностей

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

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

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

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

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

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

Системные сущности

Объявление объекта может иметь буквальное значение или может иметь некоторую комбинацию необязательных СИСТЕМА идентификатор, что позволяет синтаксическим анализаторам SGML обрабатывать референт строки объекта как идентификатор ресурса и необязательный ОБЩЕСТВЕННЫЙ идентификатор, который идентифицирует объект независимо от какого-либо конкретного представления. В XML, подмножество SGML, объявление объекта может не иметь ОБЩЕСТВЕННЫЙ идентификатор без СИСТЕМА идентификатор.

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

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

Синтаксис

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

 приветствие1 "Привет, мир"> приветствие2 СИСТЕМА "файл: ///hello.txt"> % приветствие3 "¡Hola!"> приветствие4 "% welcome3; означает Привет!">

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

  • Внутренняя общая сущность с именем приветствие1 существует и состоит из строки Привет мир.
  • Внешняя общая сущность с именем приветствие2 существует и состоит из текста, найденного в ресурсе, идентифицированном URI файл: ///hello.txt.
  • Сущность внутреннего параметра с именем приветствие3 существует и состоит из строки ¡Hola!.
  • Внутренняя общая сущность с именем приветствие4 существует и состоит из строки ¡Hola! значит привет!.

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

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

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

<content>  <info>'& приветствие1;'- обычная тестовая строка.</info>  <info>Содержимое hello.txt: & приветствие2;</info>  <info>На испанском, & приветствие4;</info></content>

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

<content>  <info>«Привет, мир» - это обычная тестовая строка.</info>  <info>Содержимое hello.txt: Приветствия</info>  <info>По-испански ¡Hola! значит привет!</info></content>

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

  ДЕФОЛТ «Этот объект не определен»>

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

Сущности персонажей

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

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

Смотрите также

Примечания

Рекомендации

  • Гольдфарб, Чарльз Ф. (ред.). Обзор ISO 8879: WG8 N1855. РГ8 и связи, 1996.
  • Гольдфарб, Чарльз Ф. и Юрий Рубинский (ред.). Справочник SGML. Издательство Оксфордского университета, 1991.

внешняя ссылка