Лекция: Определение типа документа (DTD). Назначение, основные конструкции.
pyramidin.narod.ru/html401/sgmltut.html#h-3.1
Объявление элементов в языке SGML состоит из объявления типов
<'ELEMENT
имя элемента
признак обязательности начального и конечного тега:
— — (два дефиса) => оба являются обязательными
— о (дефис и буква “O”) => конечный тег можно опустить
оо (две буквы “O”) => оба тега можно опустить
модель содержимого — она описывает что может содержаться в экземпляре типа элемента
>
Модель содержимого может в себя включать
· имена запрещённых или допустимых типов элементов (напр., элемент UL содержит объекты типа элементов LI, а тип элемента P может не содержать других элементов P)
· комбинации DTD (макросов)
· текст документа включая ссылки на символы
Синтаксис модели содержимого:
(… ) —Ограничивает группу.
A — A должно появляться только однократно.
A+ — Aдолжно появляться один раз или более.
A? — A должно появляться 0 или 1 раз.
A* — A может появляться 0 или более раз.
+(A) — A может появляться.
-(A) — A не должно появляться.
A | B —Может появиться A или B, но не оба вместе.
A, B —Оба A и B должны появиться в данном порядке.
A & B —Оба A и B должны появиться в любом порядке.
пример <'ELEMENT UL — (LI)+>
<UL>
<LI> элемент 1
<LI> элемент 2
</UL>
Определение типа элемента
<'ELEMENT DL — (DT|DD)+>
<dt>
<dt> html
<dt>hypertext markup language- язык разметки текста
</dt>
HTML
....
orpt
текст...
<'ELEMENT NT A — (%inline$)* -(A)>
<a><a></a> — недопустимо
<'ELEMENT FORM — (%block;|SCRIPT)+ -(FORM)>
Объявление атрибутов
<! FTTLIST
имя элемента – к которому относятся атрибуты
список определений
имя атрибута
тип\значение
#IMPLIED -значение атрибута устанавливается браузером автоматически
#REQUIRED — значение атрибута всегда обязательно
#FIXED — значение атрибута зафиксировано и указано
>
<!ELEMENT LINK -o EMPTY>
<!ATTLIST LINK %attrs, — - %coreattrs,%i18n,%events
— — charset %Charset; #IMPLIED
href %URL, #IMPLIED hreflang %languageCode; #IMPLIED
type %ContentType; #IMPLIED
rel %linkType; #IMPLIED
ref %linkType; #IMPLIED
media %MediaDeic; #IMPLIED>
пример
<!ENTITY %...
'id ID #IMPLIED
class CDATA #IMPLIED
style %Style #IMPLIED
title %Text
>