Расширяемый язык разметки

         

Декларация типа документа




[28]    doctypedecl    ::=    '<!DOCTYPE' ( )? ? ('[' ( | )* ']' ?)? '>'
/* */
[28a]    DeclSep    ::=    |
/* */
[29]    markupdecl    ::=    | | | | |

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

Декларации разметки могут полностью или частично состоять из для . Сценарии, приводимые далее в спецификации для конкретных неграничных элементов (, и так далее), описывают декларации уже после всех сущностей параметров.

Ссылка на сущность параметра распознается в любом месте DTD (внутреннем и внешнем наборах, внешних сущностях параметров) за исключением текстовых данных, инструкций обработки, комментариев и содержимого игнорируемых условных секций (см. главу ). Распознается она также и в тексте значения сущности. Использование сущностей параметров во внутреннем наборе деклараций подчиняется следующим ограничениям:

Ограничение действительности: тип корневого элемента

Параметр в декларации типа документа должен соответствовать типу .

Ограничение действительности: Правильная декларация/вложенность сущности параметра

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

Ограничение корректности: Сущности параметров во внутреннем наборе

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

Ограничение корректности: Внешний набор

Внешний набор, если таковой имеется, должен соответствовать сценарию для .

Ограничение корректности: Сущность параметра между декларациями

Текст замены для ссылки на сущность параметра в должен соответствовать сценарию .

Вслед за внутренним набором, внешний набор и любые внешние сущности параметров, на которые делается ссылка в , должны состоять из полных наборов деклараций разметки для типов, которые разрешены неграничным символом , в сочетании с пробельными символами и . При этом отдельные фрагменты содержимого внешнего набора или сущностей внешних параметров при определенных условиях могут игнорироваться в случае построения . Во внутреннем наборе использовать такие секции не разрешается.



Содержание раздела