Полезная информация

22 Переходное определение типа документа (Transitional Document Type Definition)


<!--
    В данном HTML 4.0 Strict DTD исключаются атрибуты
    и элементы представления, использование которых для 
    определения стиля W3C планирует постепенно прекратить. 
    Авторам следует при возможности использовать Strict DTD, 
    но в случае необходимости поддержки атрибутов и элементов
    представления допускается использование Transitional DTD.
    
    В HTML 4.0 включены механизмы поддержки таблиц стилей,
    скриптов, внедрения объектов, улучшена поддержка направления
    текста справа налево и смешанного текста, а также внесены 
    изменения в формы с целью обеспечения удобства работы 
    пользователей с физическими недостатками.


          Черновик: $Дата: 1997/12/18 09:36:02 $

          Авторы:
              Дэйв Рэгетт <dsr@w3.org>
              Арно Ле Орс <lehors@w3.org>
              Ян Джейкобс <ij@w3.org>

    Подробную информацию о HTML 4.0 можно найти по адресу:

        http://www.w3.org/TR/REC-html40
-->
<!ENTITY % HTML.Version "-//W3C//DTD HTML 4.0 Transitional//EN"
  -- Пример типичного использования:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
            "http://www.w3.org/TR/REC-html40/loose.dtd">
    <html>
    <head>
    ...
    </head>
    <body>
    ...
    </body>
    </html>

    URI, используемый как идентификатор системы, позволяет 
    агенту пользователя загрузить необходимые DTD и наборы 
    комбинаций.

    FPI для Strict HTML 4.0 DTD:

        "-//W3C//DTD HTML 4.0//EN"

    его URI:

        http://www.w3.org/TR/REC-html40/strict.dtd

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

    Если Вы создаете документ с фреймами, используйте
    следующий FPI:

        "-//W3C//DTD HTML 4.0 Frameset//EN"

    и URI:

        http://www.w3.org/TR/REC-html40/frameset.dtd

    По отношению к HTML 4.0 поддерживаются следующие URI

    "http://www.w3.org/TR/REC-html40/strict.dtd" (Strict DTD)
    "http://www.w3.org/TR/REC-html40/loose.dtd" (Loose DTD)
    "http://www.w3.org/TR/REC-html40/frameset.dtd" (Frameset DTD)
    "http://www.w3.org/TR/REC-html40/HTMLlat1.ent" (Latin-1 entities)
    "http://www.w3.org/TR/REC-html40/HTMLsymbol.ent" (Symbol entities)
    "http://www.w3.org/TR/REC-html40/HTMLspecial.ent" (Special entities)

    Эти URI указывают на последнюю версию каждого файла. 
    Для ссылки на специальную версию используйте следующие URI:

    "http://www.w3.org/TR/REC-html40-971218/strict.dtd"
    "http://www.w3.org/TR/REC-html40-971218/loose.dtd"
    "http://www.w3.org/TR/REC-html40-971218/frameset.dtd"
    "http://www.w3.org/TR/REC-html40-971218/HTMLlat1.ent"
    "http://www.w3.org/TR/REC-html40-971218/HTMLsymbol.ent"
    "http://www.w3.org/TR/REC-html40-971218/HTMLspecial.ent"

-->

<!--================== Импортированные имена ====================================-->

<!ENTITY % ContentType "CDATA"
    -- тип устройства в соответствии  с [RFC2045]
    -->

<!ENTITY % ContentTypes "CDATA"
    -- разделенный запятыми список типов устройств в соответствии с [RFC2045]
    -->

<!ENTITY % Charset "CDATA"
    -- кодировка символов в соответствии с [RFC2045]
    -->

<!ENTITY % Charsets "CDATA"
    -- разделенный пробелами список кодировок символов в соответствии с [RFC2045]
    -->

<!ENTITY % LanguageCode "NAME"
    -- код языка в соответствии с [RFC1766]
    -->

<!ENTITY % Character "CDATA"
    -- отдельный символ [ISO10646] 
    -->

<!ENTITY % LinkTypes "CDATA"
    -- разделенный пробелами список типов ссылок
    -->

<!ENTITY % MediaDesc "CDATA"
    -- отдельный дескриптор устройства или разделенный запятыми список
    -->

<!ENTITY % URI "CDATA"
    -- универсальный идентификатор ресурса, 
       см. [URI]
    -->

<!ENTITY % Datetime "CDATA" -- информация о дате и времени. Формат даты ISO -->


<!ENTITY % Script "CDATA" -- выражение скрипта -->

<!ENTITY % StyleSheet "CDATA" -- данные таблицы стилей -->

<!ENTITY % FrameTarget "CDATA" - представление в этом фрейме -->


<!ENTITY % Text "CDATA">


<!-- Комбинации параметров -->

<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- повторяющиеся элементы заголовка -->

<!ENTITY % heading "H1|H2|H3|H4|H5|H6">

<!ENTITY % list "UL | OL |  DIR | MENU">

<!ENTITY % preformatted "PRE">

<!ENTITY % Color "CDATA" -- a color using sRGB: #RRGGBB as Hex values -->

<!-- 16 широко известных названий цветов и их значения RGB:

    Black (черный)  	= #000000    Green (зеленый)   = #008000
    Silver (серебряный) = #C0C0C0    Lime (лимонный)   = #00FF00
    Gray (серый)		= #808080    Olive (оливковый) = #808000
    White (белый)		= #FFFFFF    Yellow (желтый)   = #FFFF00
    Maroon (коричневый) = #800000    Navy (синий)      = #000080
    Red (красный)		= #FF0000    Blue (голубой)    = #0000FF
    Purple (пурпурный)  = #800080    Teal   = #008080
    Fuchsia (фуксия)    = #FF00FF    Aqua (бирюзовый)  = #00FFFF
 -->

<!ENTITY % bodycolors "
  bgcolor     %Color;        #IMPLIED  -- цвет фона документа --
  text        %Color;        #IMPLIED  -- цвет текста документа --
  link        %Color;        #IMPLIED  -- цвет ссылок --
  vlink       %Color;        #IMPLIED  -- цвет просмотренных ссылок --
  alink       %Color;        #IMPLIED  -- цвет выбранных ссылок --
  ">

<!--================ Комбинации мнемоник символов =========================-->

<!ENTITY % HTMLlat1 PUBLIC
   "-//W3C//ENTITIES Latin1//EN//HTML"
   "http://www.w3.org/TR/REC-html40-971218/HTMLlat1.ent">
%HTMLlat1;

<!ENTITY % HTMLsymbol PUBLIC
   "-//W3C//ENTITIES Symbols//EN//HTML"
   "http://www.w3.org/TR/REC-html40-971218/HTMLsymbol.ent">
%HTMLsymbol;

<!ENTITY % HTMLspecial PUBLIC
   "-//W3C//ENTITIES Special//EN//HTML"
   "http://www.w3.org/TR/REC-html40-971218/HTMLspecial.ent">
%HTMLspecial;
<!--=================== Общие атрибуты ===============================-->

<!ENTITY % coreattrs
 "id          ID             #IMPLIED  -- уникальнй дентификатор в пределах документа --
  class       CDATA          #IMPLIED  -- разделенный пробелами список классов --
  style       %StyleSheet;   #IMPLIED  -- связанная информация о стиле --
  title       %Text;         #IMPLIED  -- рекомендуемый заголовок/усиление --"
  >

<!ENTITY % i18n
 "lang        %LanguageCode; #IMPLIED  -- код языка --
  dir         (ltr|rtl)      #IMPLIED  -- направление слабого/нейтрального текста --"
  >

<!ENTITY % events
 "onclick     %Script;       #IMPLIED  -- щелчок кнопки указующего устройства --
  ondblclick  %Script;       #IMPLIED  -- двойной щелчок кнопки указующего устройства --
onmousedown %Script;       #IMPLIED  -- нажата кнопка указующего устройства --
  onmouseup   %Script;       #IMPLIED  -- отпущена кнопка указующего устройства --
  onmouseover %Script;       #IMPLIED  -- указатель перемещен на --
onmousemove %Script;       #IMPLIED  -- указатель перемещен в пределы --
  onmouseout  %Script;       #IMPLIED  -- указатель перемещен за пределы --
  onkeypress  %Script;       #IMPLIED  -- клавиша нажата и отпущена --
onkeydown   %Script;       #IMPLIED  -- клавиша нажата --
  onkeyup     %Script;       #IMPLIED  -- клавиша отпущена --"
  >

<!-- Переключатель зарезервированных возможностей -->
<!ENTITY % HTML.Reserved "IGNORE">

<!-- Следующие атрибуты зарезервированы, и, возможно, будут использоваться в будущем -->
<![ %HTML.Reserved; [
<!ENTITY % reserved
 "datasrc     %URI;          #IMPLIED  -- a один или несколько источников данных --
  datafld     CDATA          #IMPLIED  -- имя свойства или столбца --
  dataformatas (plaintext|html) plaintext -- текст или html --"
  >
]]>

<!ENTITY % reserved "">

<!ENTITY % attrs "%coreattrs; %i18n; %events;">

<!ENTITY % align "align (left|center|right|justify)  #IMPLIED"
                   -- по умолчанию left для абзацев с направлением слева направо,
                      right для направления справа налево--
  >

<!--=================== Разметка текста ======================================-->

<!ENTITY % fontstyle
 "TT | I | B | U | S | STRIKE | BIG | SMALL">

<!ENTITY % phrase "EM | STRONG | DFN | CODE |
                   SAMP | KBD | VAR | CITE | ABBR | ACRONYM" >

<!ENTITY % special
   "A | IMG | APPLET | OBJECT | FONT | BASEFONT | BR | SCRIPT |
    MAP | Q | SUB | SUP | SPAN | BDO | IFRAME">

<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">

<!-- %inline; встроенные элементы или элементы "уровня текста"-->
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">

<!ELEMENT (%fontstyle;|%phrase;) - - (%inline;)*>
<!ATTLIST (%fontstyle;|%phrase;)
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!ELEMENT (SUB|SUP) - - (%inline;)*    -- верхний и нижний индекс -->
<!ATTLIST (SUB|SUP)
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!ELEMENT SPAN - - (%inline;)*         -- общий контейнер языка/стиля -->
<!ATTLIST SPAN
  %attrs;                              -- %coreattrs, %i18n, %events --
  %reserved;			       -- зарезервировано для использования в будущем --
  >

<!ELEMENT BDO - - (%inline;)*          -- переопределение BiDi интернационализации -->
<!ATTLIST BDO
  %coreattrs;                          -- id, class, style, title --
  lang        %LanguageCode; #IMPLIED  -- код языка --
  dir         (ltr|rtl)      #REQUIRED -- направление --
  >

<!ELEMENT BASEFONT - O EMPTY           -- базовый размер шрифта -->
<!ATTLIST BASEFONT
  id          ID             #IMPLIED  -- уникальный идентификатор в пределах документа --
  size        CDATA          #REQUIRED -- базовый размер шрифта для элементов FONT --
  color       %Color;        #IMPLIED  -- цвет текста --
  face        CDATA          #IMPLIED  -- разделенный запятыми список названий шрифтов --
  >

<!ELEMENT FONT - - (%inline;)*         -- локлаьное переключение на шрифт -->
<!ATTLIST FONT
  %coreattrs;                          -- id, class, style, title --
  %i18n;		               -- lang, dir --
  size        CDATA          #IMPLIED  -- [+|-]nn, например, size="+1", size="4" --
  color       %Color;        #IMPLIED  -- цвет текста --
  face        CDATA          #IMPLIED  -- разделенный запятыми список названий шрифтов --
  >

<!ELEMENT BR - O EMPTY                 -- принудительный переход на новую строку -->
<!ATTLIST BR
  %coreattrs;                          -- id, class, style, title --
  clear       (left|all|right|none) none -- управление обтеканием текста --
  >

<!--================== Модели содержимого HTML ===============================-->

<!--
    В HTML имеется две основных модели содержимого:

        %inline;     элементы уровня символа и текстовые строки
        %block;      элементы типа блока, например абзацы и списки
-->

<!ENTITY % block
     "P | %heading; | %list; | %preformatted; | DL | DIV | CENTER |
      NOSCRIPT | NOFRAMES | BLOCKQUOTE | FORM | ISINDEX | HR |
      TABLE | FIELDSET | ADDRESS">

<!ENTITY % flow "%block; | %inline;">

<!--=================== Тело документа ====================================-->

<!ELEMENT BODY O O (%flow;)* +(INS|DEL) - тело документа  -->
<!ATTLIST BODY
  %attrs;                              -- %coreattrs, %i18n, %events --
  onload          %Script;   #IMPLIED  -- документ загружен --
  onunload        %Script;   #IMPLIED  -- документ удален --
  background      %URI;      #IMPLIED  -- текстура для фона документа --
  %bodycolors;                         -- bgcolor, text, link, vlink, alink --
  >

<!ELEMENT ADDRESS - - ((%inline;)|P)*  -- информация об авторе -->
<!ATTLIST ADDRESS
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!ELEMENT DIV - - (%flow;)*            -- общий контейнер языка/стиля -->
<!ATTLIST DIV
  %attrs;                              -- %coreattrs, %i18n, %events --
  %align;                              -- выравнивание текста --
  %reserved;                           -- зарезервировано для использования в будущем --
  >

<!ELEMENT CENTER - - (%flow;)*         -- сокращение для DIV align=center -->
<!ATTLIST CENTER
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!--================== Элементя якоря ================================-->

<!ENTITY % Shape "(rect|circle|poly|default)">
<!ENTITY % Coords "CDATA" -- разделенный запятыми список длин -->

<!ELEMENT A - - (%inline;)* -(A)       -- якорь -->
<!ATTLIST A
  %attrs;                              -- %coreattrs, %i18n, %events --
  charset     %Charset;      #IMPLIED  -- кодировка связанного ресурса --
  type        %ContentType;  #IMPLIED  -- рекомендуемый тип содержимого --
  name        CDATA          #IMPLIED  -- конец именованной ссылки --
  href        %URI;          #IMPLIED  -- URI связанного ресурса --
  hreflang    %LanguageCode; #IMPLIED  -- код языка --
  target      %FrameTarget;  #IMPLIED  -- генерировать в этом фрейме --
  rel         %LinkTypes;    #IMPLIED  -- типы прямых ссылок --
  rev         %LinkTypes;    #IMPLIED  -- типы обратных ссылок --
  accesskey   %Character;    #IMPLIED  -- клавиша доступа --
  shape       %Shape;        rect      -- для использования с клиентскими 
                                          навигационными картами --
  coords      %Coords;       #IMPLIED  -- для использования с клиентскими 
                                          навигационными картами --
  tabindex    NUMBER         #IMPLIED  -- положение в последовательности перехода --
  onfocus     %Script;       #IMPLIED  -- фокус перешел к элементу --
  onblur      %Script;       #IMPLIED  -- фокус ушел с элемента --
  >

<!--================== Клиентские навигационные карты ============================-->

<!-- Они могут помещаться в тот же самый документ или 
    располагаться в отдельном документе, хотя это поддерживается еще 
    не повсеместно -->

<!ELEMENT MAP - - ((%block;)+ | AREA+) -- клиентская навигационная карта -->
<!ATTLIST MAP
  %attrs;                              -- %coreattrs, %i18n, %events --
  name        CDATA          #REQUIRED -- используется в usemap --
  >

<!ELEMENT AREA - O EMPTY               -- область клиентской навигационной карты -->
<!ATTLIST AREA
  %attrs;                              -- %coreattrs, %i18n, %events --
  shape       %Shape;        rect      -- управляет интерпретацией координат --
  coords      %Coords;       #IMPLIED  -- разделенный запятыми список длин --
  href        %URI;          #IMPLIED  -- URI связанного ресурса --
  target      %FrameTarget;  #IMPLIED  -- генерировать в этом фрейме --
  nohref      (nohref)       #IMPLIED  -- с этой областью действие не связано --
  alt         %Text;         #REQUIRED -- краткое описание --
  tabindex    NUMBER         #IMPLIED  -- положение в последовательности перехода --
  accesskey   %Character;    #IMPLIED  -- клавиша доступа --
  onfocus     %Script;       #IMPLIED  -- фокус перешел к элементу --
  onblur      %Script;       #IMPLIED  -- фокус ушел с элемента --
  >

<!--================== Элемент ссылки ==================================-->

<!--
 Значения отношения могут использоваться в основном:

   а) для панелей инструментов/меню в документе при использовании
      с элементом LINK в заголовке документа, например,
        начало, содержание, назад, далее, указатель, конец, справка
   б) для ссылки на отдельную таблицу стилей (rel=stylesheet)
   в) для установки ссылки на скрипт (rel=script)
   г) в таблицах стилей для управления представлением набора узлов 
      html в печатных версиях документов
   д) для ссылки на печатную версию данного документа, например,
      на версию в формате postscript или pdf (rel=alternate media=print)
-->

<!ELEMENT LINK - O EMPTY               -- независящая от устройства ссылка -->
<!ATTLIST LINK
  %attrs;                              -- %coreattrs, %i18n, %events --
  charset     %Charset;      #IMPLIED  -- кодировка связанного ресурса --
  href        %URI;          #IMPLIED  -- URI связанного ресурса --
  hreflang    %LanguageCode; #IMPLIED  -- код языка --
  type        %ContentType;  #IMPLIED  -- рекомендуемый тип содержимого --
  rel         %LinkTypes;    #IMPLIED  -- типы прямых ссылок --
  rev         %LinkTypes;    #IMPLIED  -- типы обратных ссылок --
  media       %MediaDesc;    #IMPLIED  -- для представления на этих устройствах --
  target      %FrameTarget;  #IMPLIED  -- генерировать в этом фрейме --
  >

<!--=================== Изображения ===========================================-->

<!-- Длина, определяемая в strict DTD для cellpadding/cellspacing -->
<!ENTITY % Length "CDATA" -- nn в пикселах или nn% в процентах -->
<!ENTITY % MultiLength "CDATA" -- пикселы, проценты или относительная -->

<!ENTITY % MultiLengths "CDATA" - разделенный запятыми список MultiLength -->

<!ENTITY % Pixels "CDATA" - целое число, представляющее длину в пикселах -->

<!ENTITY % IAlign "(top|middle|bottom|left|right)" -- центрировать? -->

<!-- Во избежание проблем с только тестовыми агентами пользователей,
     а также сделать изображения доступными и полезными для пользователей 
     с невизуальными агентами, необходимо определять описания в атрибуте ALT и 
     не использовать серверные изображения-карты -->
<!ELEMENT IMG - O EMPTY                -- внедренное изображение -->
<!ATTLIST IMG
  %attrs;                              -- %coreattrs, %i18n, %events --
  src         %URI;          #REQUIRED -- URI внедряемого изображения --
  alt         %Text;         #REQUIRED -- краткое описание --
  longdesc    %URI;          #IMPLIED  -- ссылка на длинное описание (дополняет alt) --
  height      %Length;       #IMPLIED  -- переопределение высоты --
  width       %Length;       #IMPLIED  -- переопределение ширины --
  usemap      %URI;          #IMPLIED  -- использовать клиентскую навигационную карту --
  ismap       (ismap)        #IMPLIED  -- использовать серверную навигационную карту --
  align       %IAlign;       #IMPLIED  -- вертикальное или горизонтальное выравнивание --
  border      %Length;       #IMPLIED  -- ширина границы ссылки --
  hspace      %Pixels;       #IMPLIED  -- горизонтальный gutter --
  vspace      %Pixels;       #IMPLIED  -- вертикальный gutter --
  >

<!-- USEMAP указывает на элемент MAP, который может находиться в 
 этом же или в другом документе, хотя последнее поддерживается не всегда -->

<!--==================== OBJECT ======================================-->
<!--
 OBJECT используется для внедрения объектов в качестве части страниц HTML,
 другому содержимому должны предшествовать элементы PARAM. Модель смешанного 
 содержимого SGML технически мешает такому формальному заданию...
-->

<!ELEMENT OBJECT - - (PARAM | %flow;)*
 -- общий внедренный объект -->
<!ATTLIST OBJECT
  %attrs;                              -- %coreattrs, %i18n, %events --
  declare     (declare)      #IMPLIED  -- объявить, но не инициализировать флаг --
  classid     %URI;          #IMPLIED  -- определяет реализацию --
  codebase    %URI;          #IMPLIED  -- базовый URI для classid, data, archive--
  data        %URI;          #IMPLIED  -- ссылка на аднные объекта --
  type        %ContentType;  #IMPLIED  -- тип содержимого данных --
  codetype    %ContentType;  #IMPLIED  -- тип содержимого кода --
  archive     %URI;          #IMPLIED  -- разделенный пробелами список архивов --
  standby     %Text;         #IMPLIED  -- сообщение, отображаемое во время загрузки --
  height      %Length;       #IMPLIED  -- переопределение высоты --
  width       %Length;       #IMPLIED  -- переопределение ширины --
  usemap      %URI;          #IMPLIED  -- использоватт клиентскую навигационную карту --
  name        CDATA          #IMPLIED  -- передать как часть формы --
  tabindex    NUMBER         #IMPLIED  -- положение в последовательности перехода --
  align       %IAlign;       #IMPLIED  -- вертикальное или горизонтальное выравнивание --
  border      %Length;       #IMPLIED  -- ширина границы ссылки --
  hspace      %Pixels;       #IMPLIED  -- горизонтальный gutter --
  vspace      %Pixels;       #IMPLIED  -- вертикальный gutter --
  %reserved;                           -- зарезервировано для использования в будущем --
  >

<!ELEMENT PARAM - O EMPTY              -- значение именованного свойства -->
<!ATTLIST PARAM
  id          ID             #IMPLIED  -- уникальный идентификатор в пределах документа --
  name        CDATA          #REQUIRED -- имя свойства --
  value       CDATA          #IMPLIED  -- значение свойства --
  valuetype   (DATA|REF|OBJECT) DATA   -- как интерпретировать значение --
  type        %ContentType;  #IMPLIED  -- тип содержимого для значение, если valuetype=ref --
  >

<!--=================== Апплет Java ==================================-->
<!--
  Должен присутствовать один из атрибутов кода или объекта.
  Помещайте элементы PARAM прежде другого содержимого.
-->
<!ELEMENT APPLET - - (PARAM | %flow;)* -- апплет Java -->
<!ATTLIST APPLET
  %coreattrs;                          -- id, class, style, title --
  codebase    %URI;          #IMPLIED  -- необязательный базовый URI для апплета --
  archive     CDATA          #IMPLIED  -- разделенный запятыми список архивов --
  code        CDATA          #IMPLIED  -- файл класса апплета --
  object      CDATA          #IMPLIED  -- файл серийного апплета --
  alt         %Text;         #IMPLIED  -- краткое описание --
  name        CDATA          #IMPLIED  -- позволять апплетам обнаруживать друг друга --
  width       %Length;       #REQUIRED -- начальная ширина --
  height      %Length;       #REQUIRED -- начальная высота --
  align       %IAlign;       #IMPLIED  -- вертикальное или горизонтальное выравнивание --
  hspace      %Pixels;       #IMPLIED  -- горизонтальный gutter --
  vspace      %Pixels;       #IMPLIED  -- вертикальный gutter --
  >

<!--=================== Горизонтальный разделитель ==================================-->

<!ELEMENT HR - O EMPTY - горизонтальный разделитель -->
<!ATTLIST HR
  %coreattrs;                          -- id, class, style, title --
  %events;
  align       (left|center|right) #IMPLIED
  noshade     (noshade)      #IMPLIED
  size        %Pixels;       #IMPLIED
  width       %Length;       #IMPLIED
  >

<!--=================== Абзацы =======================================-->

<!ELEMENT P - O (%inline;)*            -- абзац -->
<!ATTLIST P
  %attrs;                              -- %coreattrs, %i18n, %events --
  %align;                              -- выравнивание, выравнивание текста --
  >

<!--=================== Заголовки =========================================-->

<!--
 Имеется шесть уровней заголовков: от H1 до
  H6 (наименее значимый).
-->

<!ELEMENT (%heading;)  - - (%inline;)* -- заголовок -->
<!ATTLIST (%heading;)
  %attrs;                              -- %coreattrs, %i18n, %events --
  %align;                              -- выравнивание, выравнивание текста --
  >

<!--=================== Форматированный текст ================================-->

<!-- исключает разметку для изображений и изменения размера шрифта -->
<!ENTITY % pre.exclusion "IMG|OBJECT|APPLET|BIG|SMALL|SUB|SUP|FONT|BASEFONT">

<!ELEMENT PRE - - (%inline;)* -(%pre.exclusion;) - форматирвоанный текст  -->
<!ATTLIST PRE
  %attrs;                              -- %coreattrs, %i18n, %events --
  width       NUMBER         #IMPLIED
  >

<!--===================== Встроенные цитаты ==================================-->

<!ELEMENT Q - - (%inline;)*            -- короткая встроенная цитата -->
<!ATTLIST Q
  %attrs;                              -- %coreattrs, %i18n, %events --
  cite        %URI;          #IMPLIED  -- URI исходного документа или сообщения --
  >

<!--=================== Цитаты уровня блока ================================-->

<!ELEMENT BLOCKQUOTE - - (%flow;)*     -- длинная цитата -->
<!ATTLIST BLOCKQUOTE
  %attrs;                              -- %coreattrs, %i18n, %events --
  cite        %URI;          #IMPLIED  -- URI исходного документа или сообщения --
  >

<!--=================== Вставленный/удаленный текст ============================-->


<!-- INS/DEL are handled by inclusion on BODY -->
<!ELEMENT (INS|DEL) - - (%flow;)*      -- вставленный текст, удаленный текст -->
<!ATTLIST (INS|DEL)
  %attrs;                              -- %coreattrs, %i18n, %events --
  cite        %URI;          #IMPLIED  -- информация о причинах изменений --
  datetime    %Datetime;     #IMPLIED  -- дата и время внесения изменений --
  >

<!--=================== Списки ============================================-->

<!-- списки определений - DT -термин, DD - его определение -->

<!ELEMENT DL - - (DT|DD)+              -- список определений -->
<!ATTLIST DL
  %attrs;                              -- %coreattrs, %i18n, %events --
  compact     (compact)      #IMPLIED  -- сокращенное расстояние между элементами --
  >

<!ELEMENT DT - O (%inline;)*           -- термин -->
<!ELEMENT DD - O (%flow;)*             -- определение -->
<!ATTLIST (DT|DD)
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!-- Упорядоченные списки (OL) стиль нумерации

    1   арабские цифры                         1, 2, 3, ...
    a   буквы в нижнем регистре                a, b, c, ...
    A   буквы в верхнем регистре               A, B, C, ...
    i   римские цифры, нижний регистр          i, ii, iii, ...
    I   римские цифры, верхний регистр         I, II, III, ...

    Этот стиль применяется к порядковым номерам, по умолчанию для
    первого элемента списка устанавливается 1.

    Непосредственно в SGML это выразить нельзя вследствие проблем с 
    регистром.
-->

<!ENTITY % OLStyle "CDATA"      -- ограничено: "(1|a|A|i|I)" -->

<!ELEMENT OL - - (LI)+                 -- упорядоченный список -->
<!ATTLIST OL
  %attrs;                              -- %coreattrs, %i18n, %events --
  type        %OLStyle;      #IMPLIED  -- numbering style --
  compact     (compact)      #IMPLIED  -- сокращенное расстояние между элементами --
  start       NUMBER         #IMPLIED  -- начальный порядковый номер --
  >

<!-- Unordered Lists (UL) bullet styles -->
<!ENTITY % ULStyle "(disc|square|circle)">

<!ELEMENT UL - - (LI)+                 -- неупорядоченный список -->
<!ATTLIST UL
  %attrs;                              -- %coreattrs, %i18n, %events --
  type        %ULStyle;      #IMPLIED  -- bullet style --
  compact     (compact)      #IMPLIED  -- сокращенное расстояние между элементами --
  >

<!ELEMENT (DIR|MENU) - - (LI)+ -(%block;) -- список каталогов, список меню -->
<!ATTLIST DIR
  %attrs;                              -- %coreattrs, %i18n, %events --
  compact     (compact)      #IMPLIED
  >
<!ATTLIST MENU
  %attrs;                              -- %coreattrs, %i18n, %events --
  compact     (compact)      #IMPLIED
  >

<!ENTITY % LIStyle "CDATA" -- ограничено: "(%ULStyle;|%OLStyle;)" -->

<!ELEMENT LI - O (%flow;)*             -- элемент списка -->
<!ATTLIST LI
  %attrs;                              -- %coreattrs, %i18n, %events --
  type        %LIStyle;      #IMPLIED  -- list item style --
  value       NUMBER         #IMPLIED  -- сброс порядкового номера --
  >

<!--================ Формы ===============================================-->
<!ELEMENT FORM - - (%flow;)* -(FORM)   -- интерактивная форма -->
<!ATTLIST FORM
  %attrs;                              -- %coreattrs, %i18n, %events --
  action      %URI;          #REQUIRED -- дескриптор серверной формы --
  method      (GET|POST)     GET       -- метод HTTP, используемый для отправки формы --
  enctype     %ContentType;  "application/x-www-form-urlencoded"
  onsubmit    %Script;       #IMPLIED  -- форма отправлена --
  onreset     %Script;       #IMPLIED  -- форма сброшена --
  target      %FrameTarget;  #IMPLIED  -- генерировать в этом фрейме --
  accept-charset %Charsets;  #IMPLIED  -- список поддерживаемых наборов символов --
  >

<!-- Each label must not contain more than ONE field -->
<!ELEMENT LABEL - - (%inline;)* -(LABEL) - текст метки поля формы -->
<!ATTLIST LABEL
  %attrs;                              -- %coreattrs, %i18n, %events --
  for         IDREF          #IMPLIED  -- совпадает со значением ID поля --
  accesskey   %Character;    #IMPLIED  -- клавиша доступа --
  onfocus     %Script;       #IMPLIED  -- фокус перешел к элементу --
  onblur      %Script;       #IMPLIED  -- фокус ушел с элемента --
  >

<!ENTITY % InputType
  "(TEXT | PASSWORD | CHECKBOX |
    RADIO | SUBMIT | RESET |
    FILE | HIDDEN | IMAGE | BUTTON)"
   >

<!-- атрибут name обязателен для всех элементов, кроме submit & reset -->
<!ELEMENT INPUT - O EMPTY              -- управляющий элемент формы -->
<!ATTLIST INPUT
  %attrs;                              -- %coreattrs, %i18n, %events --
  type        %InputType;    TEXT      -- что должно быть введено --
  name        CDATA          #IMPLIED  -- передать как часть формы --
  value       CDATA          #IMPLIED  -- обязателен для кнопок с зависимой фиксацией
                                          и флажков --
  checked     (checked)      #IMPLIED  -- для кнопок с зависимой фиксацией
                                          и флажков --
  disabled    (disabled)     #IMPLIED  -- в данном контексте недоступно --
  readonly    (readonly)     #IMPLIED  -- для текста и пароля --
  size        CDATA          #IMPLIED  -- свое для каждого типа поля --
  maxlength   NUMBER         #IMPLIED  -- максимальное число символов для текстовых полей --
  src         %URI;          #IMPLIED  -- для полей с изображениями --
  alt         CDATA          #IMPLIED  -- краткое описание --
  usemap      %URI;          #IMPLIED  -- use клиентская навигационная карта --
  tabindex    NUMBER         #IMPLIED  -- положение в последовательности перехода --
  accesskey   %Character;    #IMPLIED  -- клавиша доступа --
  onfocus     %Script;       #IMPLIED  -- фокус перешел к элементу --
  onblur      %Script;       #IMPLIED  -- фокус ушел с элемента --
  onselect    %Script;       #IMPLIED  -- выделен некоторый текст --
  onchange    %Script;       #IMPLIED  -- изменено значение элемента --
  accept      %ContentTypes; #IMPLIED  -- список типов MIME файлов для загрузки --
  align       %IAlign;       #IMPLIED  -- вертикальное или горизонтальное выравнивание --
  %reserved;                           -- зарезервировано для использования в будущем --
  >

<!ELEMENT SELECT - - (OPTGROUP|OPTION)+ -- выбор вариантов -->
<!ATTLIST SELECT
  %attrs;                              -- %coreattrs, %i18n, %events --
  name        CDATA          #IMPLIED  -- название поля --
  size        NUMBER         #IMPLIED  -- видимые строки --
  multiple    (multiple)     #IMPLIED  -- одиночный выбор по умолчанию --
  disabled    (disabled)     #IMPLIED  -- в данном контексте недоступно --
  tabindex    NUMBER         #IMPLIED  -- положение в последовательности перехода --
  onfocus     %Script;       #IMPLIED  -- фокус перешел к элементу --
  onblur      %Script;       #IMPLIED  -- фокус ушел с элемента --
  onchange    %Script;       #IMPLIED  -- изменено значение элемента --
  %reserved;                           -- зарезервировано для использования в будущем --
  >

<!ELEMENT OPTGROUP - - (OPTION)+ -- группа параметров -->
<!ATTLIST OPTGROUP
  %attrs;                              -- %coreattrs, %i18n, %events --
  disabled    (disabled)     #IMPLIED  -- в данном контексте недоступно --
  label       %Text;         #REQUIRED -- для использования в иерархических меню --
  >

<!ELEMENT OPTION - O (#PCDATA)         -- выбираемый вариант -->
<!ATTLIST OPTION
  %attrs;                              -- %coreattrs, %i18n, %events --
  selected    (selected)     #IMPLIED
  disabled    (disabled)     #IMPLIED  -- в данном контексте недоступно --
  label       %Text;         #IMPLIED  -- для использования в иерархических меню --
  value       CDATA          #IMPLIED  -- по умолчанию - содержимое элемента --
  >

<!ELEMENT TEXTAREA - - (#PCDATA)       -- текстовое поле из нескольких строк -->
<!ATTLIST TEXTAREA
  %attrs;                              -- %coreattrs, %i18n, %events --
  name        CDATA          #IMPLIED
  rows        NUMBER         #REQUIRED
  cols        NUMBER         #REQUIRED
  disabled    (disabled)     #IMPLIED  -- в данном контексте недоступно --
  readonly    (readonly)     #IMPLIED
  tabindex    NUMBER         #IMPLIED  -- положение в последовательности перехода --
  accesskey   %Character;    #IMPLIED  -- клавиша доступа --
  onfocus     %Script;       #IMPLIED  -- фокус перешел к элементу --
  onblur      %Script;       #IMPLIED  -- фокус ушел с элемента --
  onselect    %Script;       #IMPLIED  -- выделен некоторый текст --
  onchange    %Script;       #IMPLIED  -- изменено значение элемента --
  %reserved;                           -- зарезервировано для использования в будущем --
  >

<!--
  #PCDATA используется для решения проблемы смешанного содержимого,
  здесь допустимы только пробельные символы!
 -->
<!ELEMENT FIELDSET - - (#PCDATA,LEGEND,(%flow;)*) - группа управляющих элементов формы -->
<!ATTLIST FIELDSET
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!ELEMENT LEGEND - - (%inline;)*       -- описание набора полей -->
<!ENTITY % LAlign "(top|bottom|left|right)">

<!ATTLIST LEGEND
  %attrs;                              -- %coreattrs, %i18n, %events --
  accesskey   %Character;    #IMPLIED  -- клавиша доступа --
  align       %LAlign;       #IMPLIED  -- относительно набора полей --
  >

<!ELEMENT BUTTON - -
     (%flow;)* -(A|%formctrl;|FORM|ISINDEX|FIELDSET|IFRAME)
     -- кнопка -->
<!ATTLIST BUTTON
  %attrs;                              -- %coreattrs, %i18n, %events --
  name        CDATA          #IMPLIED
  value       CDATA          #IMPLIED  -- отправлено на сервер при передаче --
  type        (button|submit|reset) submit -- для использования в качестве кнопки --
  disabled    (disabled)     #IMPLIED  -- в данном контексте недоступно --
  tabindex    NUMBER         #IMPLIED  -- положение в последовательности перехода --
  accesskey   %Character;    #IMPLIED  -- клавиша доступа --
  onfocus     %Script;       #IMPLIED  -- фокус перешел к элементу --
  onblur      %Script;       #IMPLIED  -- фокус ушел с элемента --
  %reserved;                           -- зарезервировано для использования в будущем --
  >

<!--======================= Таблицы =======================================-->

<!-- IETF HTML table standard, see [RFC1942] -->

<!--
 Атрибут BORDER устанавливает толщину рамки вокруг
 таблицы. По умолчанию используются пикселы.

 Атрибут FRAME определяет, какие части рамки вокруг
 таблицы должны представляться. Значения не совпадают с
 CALS во избежание конфликтов имен с атрибутом VALIGN.

 Значение "border" включено для совместимости с предыдущими версиями
 <TABLE BORDER>, уступив место frame=border и border=implied
 Для <TABLE BORDER=1> введены border=1 и frame=implied. В этом
 случае оно может обрабатываться как frame=border для совместимости
 с браузерами более старых версий.
-->
<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">

<!--
 Атрибут RULES определяет, какие rules между ячейками будут отображаться:

 Если атрибут RULES отсутстввует, предполагается:
     "none", если атрибут BORDER отсутствует или BORDER=0, в противном случае "all"
-->

<!ENTITY % TRules "(none | groups | rows | cols | all)">
  
<!-- горизонтальное расположение таблицы относительно документа -->
<!ENTITY % TAlign "(left|center|right)">

<!-- атрибуты горизонтального выравнивания содержимого ячейки -->
<!ENTITY % cellhalign
  "align      (left|center|right|justify|char) #IMPLIED
   char       %Character;    #IMPLIED  -- символ выравнивания, например, char=':' --
   charoff    %Length;       #IMPLIED  -- смещение символа выравнивания --"
  >

<!-- атрибуты вертикального выравниваиня содержимого ячейки -->
<!ENTITY % cellvalign
  "valign     (top|middle|bottom|baseline) #IMPLIED"
  >

<!ELEMENT TABLE - -
     (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
<!ELEMENT CAPTION  - - (%inline;)*     -- table caption -->
<!ELEMENT THEAD    - O (TR)+           -- заголовок таблицы -->
<!ELEMENT TFOOT    - O (TR)+           -- нижний заголовок таблицы -->
<!ELEMENT TBODY    O O (TR)+           -- тело таблицы -->
<!ELEMENT COLGROUP - O (col)*          -- группа столбцов таблицы -->
<!ELEMENT COL      - O EMPTY           -- столбец таблицы -->
<!ELEMENT TR       - O (TH|TD)+        -- строка таблицы -->
<!ELEMENT (TH|TD)  - O (%flow;)*       -- ячейка заголовка таблицы, ячейка данных таблицы-->

<!ATTLIST TABLE                        -- элемент таблицы --
  %attrs;                              -- %coreattrs, %i18n, %events --
  summary     %Text;         #IMPLIED  -- назначение/структура речевого вывода--
  width       %Length;       #IMPLIED  -- ширина таблицы --
  border      %Pixels;       #IMPLIED  -- управляет толщиной рамки вокруг таблицы --
  frame       %TFrame;       #IMPLIED  -- какие части рамки должны геренироваться --
  rules       %TRules;       #IMPLIED  -- разделители между строками столбцами --
  cellspacing %Length;       #IMPLIED  -- расстояние между ячейками --
  cellpadding %Length;       #IMPLIED  -- расстояние в ячейках --
  align       %TAlign;       #IMPLIED  -- положение таблицы относительно окна --
  bgcolor     %Color;        #IMPLIED  -- цвет фона ячеек --
  %reserved;                           -- зарезервировано для использования в будущем --
  datapagesize CDATA         #IMPLIED  -- зарезервировано для использования в будущем --
  >

<!ENTITY % CAlign "(top|bottom|left|right)">

<!ATTLIST CAPTION
  %attrs;                              -- %coreattrs, %i18n, %events --
  align       %CAlign;       #IMPLIED  -- относительно таблицы --
  >

<!--
COLGROUP объяединяет ряд элементов COL. В можете
группировать несколько семантически связанных столбцов.
-->
<!ATTLIST COLGROUP
  %attrs;                              -- %coreattrs, %i18n, %events --
  span        NUMBER         1         -- число столбцов в группе по умолчанию --
  width       %MultiLength;  #IMPLIED  -- ширина по умолчанию для вложенных COL --
  %cellhalign;                         -- горизонтальное выравнивание в ячейках --
  %cellvalign;                         -- вертикальное выравнивание в ячейках --
  >

<!--
 Элементы COL определяют свойства выраванивания для ячеек
 в одном или нескольких столбцах.

Атрибут WIDTH определяет ширину столбцов, например,

     width=64        ширина в пикселах
     width=0.5*      относительная ширина 0.5

 Атрибут SPAN приводит к тому, что атрибуты одного элемента
 COL приеняются к нскольким столбцам.
-->
<!ATTLIST COL                          -- группа и свойства столбцов --
  %attrs;                              -- %coreattrs, %i18n, %events --
  span        NUMBER         1         -- атрибуты COL влияют на N столбцов --
  width       %MultiLength;  #IMPLIED  -- указание ширины столбца --
  %cellhalign;                         -- горизонтальное выравнивание в ячейках --
  %cellvalign;                         -- вертикальное выравнивание в ячейках --
  >

<!--
    Используйте THEAD для дублирования заголовков при разрые
    таблицы на страницах ли для представления статических
    заголовков, когда разделы TBODY представляются на 
    прокручиваемой панели.

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

    Используйте несколько разделов TBODY, если между группами строк     
    таблицы необходимы rules.
-->
<!ATTLIST (THEAD|TBODY|TFOOT)          -- table section --
  %attrs;                              -- %coreattrs, %i18n, %events --
  %cellhalign;                         -- горизонтальное выравнивание в ячейках --
  %cellvalign;                         -- вертикальное выравнивание в ячейках --
  >

<!ATTLIST TR                           -- строка таблицы --
  %attrs;                              -- %coreattrs, %i18n, %events --
  %cellhalign;                         -- горизонтальное выравнивание в ячейках --
  %cellvalign;                         -- вертикальное выравнивание в ячейках --
  bgcolor     %Color;        #IMPLIED  -- цвет фона строки --
  >



<!-- Атрибут Scope проще атрибута axes для большинства таблиц -->
<!ENTITY % Scope "(row|col|rowgroup|colgroup)">

<!-- TH - для заголовков, TD 0 для данных, но для ячеек, действующих как то и другое используйте TD -->
<!ATTLIST (TH|TD)                      -- ячейка заголовка или данных --
  %attrs;                              -- %coreattrs, %i18n, %events --
  abbr        %Text;         #IMPLIED  -- аббревиатура ячейки заголовка --
  axis        CDATA          #IMPLIED  -- группы имен связаннх столбцов --
  headers     IDREFS         #IMPLIED  -- список идентификаторов ячеек заголовков --
  scope       %Scope;        #IMPLIED  -- область действия ячеек заголовков --
  rowspan     NUMBER         1         -- число строк, занимаемых ячейкой --
  colspan     NUMBER         1         -- число столбцов, занимаемых ячейкой --
  %cellhalign;                         -- горизонтальное выравнивание в ячейках --
  %cellvalign;                         -- вертикальное выравнивание в ячейках --
  nowrap      (nowrap)       #IMPLIED  -- подавление переноса слов --
  bgcolor     %Color;        #IMPLIED  -- цвет фона ячейки --
  width       %Pixels;       #IMPLIED  -- ширина ячейки --
  height      %Pixels;       #IMPLIED  -- высота ячейки --
  >

<!--================== Фреймы документа ===================================-->

<!--
  Модель содержимого документов HTML зависит от того, следует ли за 
  элементом HEAD элемент FRAMESET или BODY. Широко растпространенный 
  пропуск начального тега BODY не позволяет определить модель 
  содержимого без использования размеченного раздела.
-->

<!-- Feature Switch for frameset documents -->
<!ENTITY % HTML.Frameset "IGNORE">

<![ %HTML.Frameset; [
<!ELEMENT FRAMESET - - ((FRAMESET|FRAME)+ & NOFRAMES?) - подразделение окна -->
<!ATTLIST FRAMESET
  %coreattrs;                          -- id, class, style, title --
  rows        %MultiLengths; #IMPLIED  -- список длин, по умочланию: 100% (1 строка) --
  cols        %MultiLengths; #IMPLIED  -- список длин, по умолчанию: 100% (1 столбец) --
  onload      %Script;       #IMPLIED  -- все фреймы загружены  -- 
  onunload    %Script;       #IMPLIED  -- все фреймы удалены -- 
  >
]]>

<![ %HTML.Frameset; [
<!-- зарезервированные имена фреймов начинаются с "_", в противном случае - с буквы -->
<!ELEMENT FRAME - O EMPTY              -- вложенное окно -->
<!ATTLIST FRAME
  %coreattrs;                          -- id, class, style, title --
  longdesc    %URI;          #IMPLIED  -- ссылка на длинное описание (дополняет title) --
  name        CDATA          #IMPLIED  -- имя целевого фрейма --
  src         %URI;          #IMPLIED  -- источник содержимого фрейма --
  frameborder (1|0)          1         -- нужны границы фрейма? --
  marginwidth %Pixels;       #IMPLIED  -- ширина полей в пикселах --
  marginheight %Pixels;      #IMPLIED  -- высотав полей в пикселах --
  noresize    (noresize)     #IMPLIED  -- позволить пользователям изменять размеры фрейма? --
  scrolling   (yes|no|auto)  auto      -- наличие полосы прокрутки --
  >
]]>

<!ELEMENT IFRAME - - (%flow;)*         -- встроенное вложенное окно -->
<!ATTLIST IFRAME
  %coreattrs;                          -- id, class, style, title --
  longdesc    %URI;          #IMPLIED  -- ссылка на длинное описание (дополняет title) --
  name        CDATA          #IMPLIED  -- имя целевого фрейма --
  src         %URI;          #IMPLIED  -- источник содержимого фрейма --
  frameborder (1|0)          1         -- нужны границы фрейма? --
  marginwidth %Pixels;       #IMPLIED  -- ширина полей в пикселах --
  marginheight %Pixels;      #IMPLIED  -- высота полей в пикселах --
  scrolling   (yes|no|auto)  auto      -- нужна ли полоса прокрутки --
  align       %IAlign;       #IMPLIED  -- вертикальное или горизонтальное выравнивание --
  height      %Length;       #IMPLIED  -- высота фрейма --
  width       %Length;       #IMPLIED  -- ширина фрейма --
  >

<![ %HTML.Frameset; [
<!ENTITY % noframes.content "(BODY) -(NOFRAMES)">
]]>

<!ENTITY % noframes.content "(%flow;)*">

<!ELEMENT NOFRAMES - - %noframes.content;
 -- контейнер альтернативного содержимого для представления без фреймов -->
<!ATTLIST NOFRAMES
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!--================ Заголовок документа =======================================-->
<!-- %head.misc; определяется ранее как "SCRIPT|STYLE|META|LINK|OBJECT" -->
<!ENTITY % head.content "TITLE & ISINDEX? & BASE?">

<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) - заголовок документа -->
<!ATTLIST HEAD
  %i18n;                               -- lang, dir --
  profile     %URI;          #IMPLIED  -- именованный словарь метаинформации --
  >

<!-- Элемент TITLE не считается частью потока текста.
     Он должен отображаться, например, в виде заголовка страницы
     или окна. У кажого документа должен быть ровно один заголовок.
    -->
<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- заголовок документа -->
<!ATTLIST TITLE %i18n>

<!ELEMENT ISINDEX - O EMPTY            -- запрос из одной строки -->
<!ATTLIST ISINDEX
  %coreattrs;                          -- id, class, style, title --
  %i18n;                               -- lang, dir --
  prompt      %Text;         #IMPLIED  -- сообщение запроса -->

<!ELEMENT BASE - O EMPTY               -- базовый URI документа -->
<!ATTLIST BASE
  href        %URI;          #IMPLIED  -- URI, служащий базовым --
  target      %FrameTarget;  #IMPLIED  -- генерировать в этом фрейме --
  >

<!ELEMENT META - O EMPTY               -- общая метаинформация -->
<!ATTLIST META
  %i18n;                               -- lang, dir, для использования с содержимым --
  http-equiv  NAME           #IMPLIED  -- HTTP имя заголовка ответа --
  name        NAME           #IMPLIED  -- имя метаинформации --
  content     CDATA          #REQUIRED -- связанная информация --
  scheme      CDATA          #IMPLIED  -- выбор формы содержимого --
  >

<!ELEMENT STYLE - - %StyleSheet        -- информация о стиле -->
<!ATTLIST STYLE
  %i18n;                               -- lang, dir, для использования в заголовке --
  type        %ContentType;  #REQUIRED -- тип содержимого языка стиля --
  media       %MediaDesc;    #IMPLIED  -- для использвоания с этими устройствами --
  title       %Text;         #IMPLIED  -- рекомендуемый заголовок --
  >

<!ELEMENT SCRIPT - - %Script;          -- выражения скрипта -->
<!ATTLIST SCRIPT
  charset     %Charset;      #IMPLIED  -- кодировка связанного ресурса --
  type        %ContentType;  #REQUIRED -- тип содержимого языка скрипта --
  language    CDATA          #IMPLIED  -- предопределенное имя языка скрипта --
  src         %URI;          #IMPLIED  -- URI внешнего скрипта --
  defer       (defer)        #IMPLIED  -- агент пользователя может отложить выполнение
                                          скрипта --
  event       CDATA          #IMPLIED  -- зарезервировано для использования в будущем --
  for         %URI;          #IMPLIED  -- зарезервировано для использования в будущем --
  >

<!ELEMENT NOSCRIPT - - (%flow;)*
  -- контейнер альтернативного содержимого для представления без скриптов -->
<!ATTLIST NOSCRIPT
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!--================ Структура документа ==================================-->
<!ENTITY % version "version CDATA #FIXED '%HTML.Version;'">

<![ %HTML.Frameset; [
<!ENTITY % html.content "HEAD, FRAMESET">
]]>

<!ENTITY % html.content "HEAD, BODY">

<!ELEMENT HTML O O (%html.content;)    -- корневой элемент документа -->
<!ATTLIST HTML
  %i18n;                               -- lang, dir --
  %version;
  >