stringtranslate.com

SGML-сущность

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

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

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

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

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

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

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

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

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

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

Синтаксис

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

<!ENTITY  greeting1  "Привет, мир" > <!ENTITY  greeting2  SYSTEM  "file:///hello.txt" > <!ENTITY  %  greeting3  "¡Hola!" > <!ENTITY  greeting4  "%greeting3; означает Привет!" >

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

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

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

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

<content> <info> ' &greeting1; ' — это обычная тестовая строка. </info> <info> Содержимое hello.txt : & greeting2 ; </info> <info> На испанском языке &greeting4; </info> </content>               

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

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

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

 <!ENTITY  #DEFAULT  "Эта сущность не определена" >

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

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

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

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

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

Примечания

  1. ^ "Web SGML и HTML 4.0 Explained - Глава 6". www.is-thought.co.uk . Архивировано из оригинала 2009-02-05.

Ссылки

Внешние ссылки