21  Определение Типа Документа (ОТД)

<!--
    Это Strict/Строгое DTD/ОТД HTML 4.01, исключающее представление
    атрибутов и элементов, от которых W3C надеется отойти, чтобы
    поддержать развитие таблиц стилей. Авторы должны использовать Strict ОТД
    везде, где это возможно, но могут также использовать Transitional/Переходное ОТД
    для поддержки необходимых атрибутов представления и элементов.
    
    HTML 4 содержит механизмы для таблиц стилей, сценариев,
    Внедрённых объектов, улучшенную поддержку для направления текста справа налево
    и смешанного и развитие форм для улучшения доступности для людей с физическими проблемами.

          Проект: $ Дата: 1999/12/24 22:40:35 $

          Авторы:
              Dave Raggett <dsr@w3.org>
              Arnaud Le Hors <lehors@w3.org>
              Ian Jacobs <ij@w3.org>

    дополнительная информация о HTML 4.01 находится на:

        http://www.w3.org/TR/1999/REC-html401-19991224


    Спецификация HTML 4.01 включает дополнительные
    синтаксические ограничения, которые не могут быть отражены в ОТД.
-->

<!--
    Типичное использование:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
            "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    ...
    </head>
    <body>
    ...
    </body>
    </html>

    URI, используемый как системный идентификатор с public-идентификатором, позволяет
    пользовательскому агенту (ПА) загружать ОТД и наборы мнемоник по мере необходимости.

    FPI для переходного ОТД HTML 4.01:

        "-//W3C//DTD HTML 4.01 Transitional//EN"

    Это версия Переходного ОТД:

        http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd

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

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

    Эта версия ОТД набора фрэймов:

        http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd

    Используйте эти (относительные) URI для перехода к 
    определениям типа документов (ОТД) и мнемоник в данной спецификации:

    "strictdtd.txt"
    "loosedtd.txt"
    "frameset.txt"
    "HTMLlat1.txt"
    "HTMLsymbol.txt"
    "HTMLspecial.txt"

-->

<!--======================= Импортированные Имена ====================================-->
<!-- Переключатель особенностей для документов - наборов фрэймов -->
<!ENTITY % HTML.Frameset "IGNORE">

<!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" -- Uniform Resource Identifier - Универсальный Идентификатор Ресурса,
       см. [URI]
    -->

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


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

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



<!ENTITY % Text "CDATA">


<!-- Ссылки-параметры -->

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

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

<!ENTITY % list "UL | OL">

<!ENTITY % preformatted "PRE">


<!--================================== Символы-мнемоники =============================-->

<!ENTITY % HTMLlat1 PUBLIC
   "-//W3C//ENTITIES Latin1//EN//HTML"
   "HTMLlat1.ent">
%HTMLlat1;

<!ENTITY % HTMLsymbol PUBLIC
   "-//W3C//ENTITIES Symbols//EN//HTML"
   "HTMLsymbol.ent">
%HTMLsymbol;

<!ENTITY % HTMLspecial PUBLIC
   "-//W3C//ENTITIES Special//EN//HTML"
   "HTMLspecial.ent">
%HTMLspecial;
<!--========================= Общие Атрибуты ===============================-->

<!ENTITY % coreattrs
 "id          ID             #ПРЕДПОЛАГАЕТСЯ  -- уникальный идентификатор документа --
  class       CDATA          #ПРЕДПОЛАГАЕТСЯ  -- разделённый пробелами список классов --
  style       %StyleSheet;   #ПРЕДПОЛАГАЕТСЯ  -- информация об ассоциированных стилях --
  title       %Text;         #ПРЕДПОЛАГАЕТСЯ  -- информативное название --"
  >

<!ENTITY % i18n
 "lang        %LanguageCode; #ПРЕДПОЛАГАЕТСЯ  -- код языка --
  dir         (ltr|rtl)      #ПРЕДПОЛАГАЕТСЯ  -- направление текста --"
  >

<!ENTITY % events
 "onclick     %Script;       #ПРЕДПОЛАГАЕТСЯ  -- щёлкнула кнопка указателя (мыши) --
  ondblclick  %Script;       #ПРЕДПОЛАГАЕТСЯ  -- дважды щёлкнула кнопка указателя (мыши) --
  onmousedown %Script;       #ПРЕДПОЛАГАЕТСЯ  -- кнопка указателя (мыши) нажата --
  onmouseup   %Script;       #ПРЕДПОЛАГАЕТСЯ -- кнопка указателя (мыши) отпущена --
  onmouseover %Script;       #ПРЕДПОЛАГАЕТСЯ  -- указатель проведён над --
  onmousemove %Script;       #ПРЕДПОЛАГАЕТСЯ  -- указатель проведён внутри --
  onmouseout  %Script;       #ПРЕДПОЛАГАЕТСЯ  -- указатель убран за пределы --
  onkeypress  %Script;       #ПРЕДПОЛАГАЕТСЯ  -- клавиша была нажата и отпущена --
  onkeydown   %Script;       #ПРЕДПОЛАГАЕТСЯ  -- клавиша была нажата --
  onkeyup     %Script;       #ПРЕДПОЛАГАЕТСЯ  -- клавиша была отпущена --"
  >

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

<!-- Следующие атрибуты зарезервированы для возможного использования в будущем -->
<![ %HTML.Reserved; [
<!ENTITY % reserved
 "datasrc     %URI;          #ПРЕДПОЛАГАЕТСЯ  -- одиночный или табличный Data Source --
  datafld     CDATA          #ПРЕДПОЛАГАЕТСЯ  -- свойство имени столбца --
  dataformatas (plaintext|html) plaintext -- text или html --"
  >
]]>

<!ENTITY % reserved "">

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


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

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

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

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

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

<!-- %inline; покрывает элементы inline или "text-level" -->
<!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;)*          -- I18N BiDi переопределение -->
<!ATTLIST BDO
  %coreattrs;                          -- id, class, style, title --
  lang        %LanguageCode; #ПРЕДПОЛАГАЕТСЯ  -- код языка --
  dir         (ltr|rtl)      #НЕОБХОДИМ -- направление текста --
  >


<!ELEMENT BR - O EMPTY                 -- принудительный обрыв строки -->
<!ATTLIST BR
  %coreattrs;                          -- id, class, style, title --
  >

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

<!--
    В HTML есть две базовые модели содержимого:

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

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

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

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

<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- тело документа -->
<!ATTLIST BODY
  %attrs;                              -- %coreattrs, %i18n, %events --
  onload          %Script;   #ПРЕДПОЛАГАЕТСЯ  -- документ был загружен --
  onunload        %Script;   #ПРЕДПОЛАГАЕТСЯ  -- документ был удалён --
  >

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

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


<!--============================ Элемент "Якорь" ================================-->

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

<!ELEMENT A - - (%inline;)* -(A)       -- якорь -->
<!ATTLIST A
  %attrs;                              -- %coreattrs, %i18n, %events --
  charset     %Charset;      #ПРЕДПОЛАГАЕТСЯ  -- символьная кодировка связанного ресурса --
  type        %ContentType;  #ПРЕДПОЛАГАЕТСЯ  -- информативный тип содержимого --
  name        CDATA          #ПРЕДПОЛАГАЕТСЯ  -- именованный конец гиперссылки --
  href        %URI;          #ПРЕДПОЛАГАЕТСЯ  -- URI связанного ресурса --
  hreflang    %LanguageCode; #ПРЕДПОЛАГАЕТСЯ   -- код языка --
  rel         %LinkTypes;    #ПРЕДПОЛАГАЕТСЯ  -- типы гиперссылок вперёд --
  rev         %LinkTypes;    #ПРЕДПОЛАГАЕТСЯ  -- типы гиперссылок назад --
  accesskey   %Character;    #ПРЕДПОЛАГАЕТСЯ   -- символ ключа доступа --
  shape       %Shape;        rect      -- для использования с клиентскими картами изображений --
  coords      %Coords;       #ПРЕДПОЛАГАЕТСЯ  -- для использования 
						с клиентскими картами изображений --
  tabindex    NUMBER         #ПРЕДПОЛАГАЕТСЯ  -- позиция в порядке табуляции --
  onfocus     %Script;       #ПРЕДПОЛАГАЕТСЯ  -- элемент получил фокус --
  onblur      %Script;       #ПРЕДПОЛАГАЕТСЯ  -- элемент потерял фокус --
  >

<!--======================= Клиентские карты изображений ============================-->

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

<!ELEMENT MAP - - ((%block;) | AREA)+ -- клиентские карты изображений -->
<!ATTLIST MAP
  %attrs;                              -- %coreattrs, %i18n, %events --
  name        CDATA          #НЕОБХОДИМ -- для ссылок usemap --
  >

<!ELEMENT AREA - O EMPTY               -- область клиентских карт изображений -->
<!ATTLIST AREA
  %attrs;                              -- %coreattrs, %i18n, %events --
  shape       %Shape;        rect     	     -- интерпретация координат --
  coords      %Coords;       #ПРЕДПОЛАГАЕТСЯ  -- список разделённых запятыми размеров --
  href        %URI;          #ПРЕДПОЛАГАЕТСЯ  -- URI связанного ресурса --
  nohref      (nohref)       #ПРЕДПОЛАГАЕТСЯ  -- эта область не имеет action --
  alt         %Text;         #НЕОБХОДИМ 	     -- краткое описание --
  tabindex    NUMBER         #ПРЕДПОЛАГАЕТСЯ  -- позиция в порядке табуляции --
  accesskey   %Character;    #ПРЕДПОЛАГАЕТСЯ  -- символ быстрого доступа --
  onfocus     %Script;       #ПРЕДПОЛАГАЕТСЯ  -- элемент получил фокус --
  onblur      %Script;       #ПРЕДПОЛАГАЕТСЯ  -- элемент потерял фокус --
  >

<!--============================ Элемент LINK ==================================-->

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

   a) для специфических в данном документе панелей/меню при использовании
      с элементом LINK в "шапке" документа, например,
      start, contents, previous, next, index, end, help;
   b) для ссылки на отдельную таблицу стилей (rel=stylesheet);
   c) для ссылки на скрипт (rel=script);
   d) таблицами стилей для контроля за тем, как коллекции
      узлов html отображаются в документах при печати;
   e) для ссылки на версию для печати данного документа,
      например, postscript или pdf версия (rel=alternate media=print).
-->

<!ELEMENT LINK - O EMPTY               -- media-независимая ссылка -->
<!ATTLIST LINK
  %attrs;                              -- %coreattrs, %i18n, %events --
  charset     %Charset;      #ПРЕДПОЛАГАЕТСЯ  -- набор символов связанного ресурса --
  href        %URI;          #ПРЕДПОЛАГАЕТСЯ  -- URI связанного ресурса --
  hreflang    %LanguageCode; #ПРЕДПОЛАГАЕТСЯ  -- код языка --
  type        %ContentType;  #ПРЕДПОЛАГАЕТСЯ  -- информативный тип содержимого --
  rel         %LinkTypes;    #ПРЕДПОЛАГАЕТСЯ  -- типы ссылок вперёд --
  rev         %LinkTypes;    #ПРЕДПОЛАГАЕТСЯ  -- типы ссылок назад --
  media       %MediaDesc;    #ПРЕДПОЛАГАЕТСЯ  -- для представления на этом носителе --
  >

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

<!-- размер, определённый в Строгом ОТД для cellpadding/cellspacing -->
<!ENTITY % Length "CDATA" -- nn размер в пикселах,  nn% - в процентах -->
<!ENTITY % MultiLength "CDATA" -- пиксел, процент или относительный размер -->

<![ %HTML.Frameset; [
<!ENTITY % MultiLengths "CDATA" -- список разделённых запятыми MultiLength -->
]]>

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


<!-- Чтобы исключить возможные проблемы с только-текстовыми ПА, а также чтобы 
   содержимое изображения было понятным и доступным для навигации
   пользователей с невизуальными ПА, Вам нужно предоставить
   описание в ALT и исключить серверные карты изображений -->
<!ELEMENT IMG - O EMPTY                -- внедрённое изображение -->
<!ATTLIST IMG
  %attrs;                              -- %coreattrs, %i18n, %events --
  src         %URI;          #НЕОБХОДИМ -- URI изображения для внедрения --
  alt         %Text;         #НЕОБХОДИМ -- краткое описание --
  longdesc    %URI;          #ПРЕДПОЛАГАЕТСЯ  -- ссылка на полное описание (дополняет alt) --
  name        CDATA          #ПРЕДПОЛАГАЕТСЯ  -- имя изображения (для сценариев) --
  height      %Length;       #ПРЕДПОЛАГАЕТСЯ  -- переопределить высоту --
  width       %Length;       #ПРЕДПОЛАГАЕТСЯ  -- переопределить ширину --
  usemap      %URI;          #ПРЕДПОЛАГАЕТСЯ  -- использовать клиентские карты изображений --
  ismap       (ismap)        #ПРЕДПОЛАГАЕТСЯ  -- использовать серверные карты изображений --
  >

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

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

<!ELEMENT OBJECT - - (PARAM | %flow;)*
 -- общий внедрённый объект -->
<!ATTLIST OBJECT
  %attrs;                              -- %coreattrs, %i18n, %events --
  declare     (declare)      #ПРЕДПОЛАГАЕТСЯ  -- объявляет, но не устанавливает флаг --
  classid     %URI;          #ПРЕДПОЛАГАЕТСЯ  -- идентифицирует класс --
  codebase    %URI;          #ПРЕДПОЛАГАЕТСЯ  -- базовый URI для classid, data, archive--
  data        %URI;          #ПРЕДПОЛАГАЕТСЯ  -- ссылка на данные объекта --
  type        %ContentType;  #ПРЕДПОЛАГАЕТСЯ  -- тип содержимого данных --
  codetype    %ContentType;  #ПРЕДПОЛАГАЕТСЯ  -- тип содержимого для кода --
  archive     CDATA          #ПРЕДПОЛАГАЕТСЯ  -- список разделённых пробелами URI --
  standby     %Text;         #ПРЕДПОЛАГАЕТСЯ  -- сообщение, которое показывается при загрузке --
  height      %Length;       #ПРЕДПОЛАГАЕТСЯ  -- переопределить высоту --
  width       %Length;       #ПРЕДПОЛАГАЕТСЯ  -- переопределить ширину --
  usemap      %URI;          #ПРЕДПОЛАГАЕТСЯ  -- использовать клиентские карты изображений --
  name        CDATA          #ПРЕДПОЛАГАЕТСЯ  -- отправить как часть формы --
  tabindex    NUMBER         #ПРЕДПОЛАГАЕТСЯ  -- позиция в порядке табуляции --
  %reserved;                        -- зарезервирован для возможного использования в будущем --
  >

<!ELEMENT PARAM - O EMPTY              -- именованное значение свойства -->
<!ATTLIST PARAM
  id          ID             #ПРЕДПОЛАГАЕТСЯ  -- уникальный идентификатор документа --
  name        CDATA          #НЕОБХОДИМ -- имя свойства --
  value       CDATA          #ПРЕДПОЛАГАЕТСЯ  -- значение свойства --
  valuetype   (DATA|REF|OBJECT) DATA   -- как интерпретировать значение --
  type        %ContentType;  #ПРЕДПОЛАГАЕТСЯ  -- тип содержимого значения, если valuetype=ref --
  >


<!--========================== Горизонтальная Линия ==================================-->

<!ELEMENT HR - O EMPTY -- горизонтальная линия -->
<!ATTLIST HR
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!--=============================== Параграфы =======================================-->

<!ELEMENT P - O (%inline;)*            -- параграф -->
<!ATTLIST P
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!--=================== Заголовки (в теле документа) =====================================-->

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

<!ELEMENT (%heading;)  - - (%inline;)* -- заголовок -->
<!ATTLIST (%heading;)
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

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

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

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

<!--============================= Инлайн-кавычки ==================================-->

<!ELEMENT Q - - (%inline;)*            -- сокращённое закавычивание инлайн -->
<!ATTLIST Q
  %attrs;                              -- %coreattrs, %i18n, %events --
  cite        %URI;          #ПРЕДПОЛАГАЕТСЯ  -- URI документа-источника или сообщения --
  >

<!--=========================== Кавычки блока ================================-->

<!ELEMENT BLOCKQUOTE - - (%block;|SCRIPT)+ -- полные кавычки -->
<!ATTLIST BLOCKQUOTE
  %attrs;                              -- %coreattrs, %i18n, %events --
  cite        %URI;          #ПРЕДПОЛАГАЕТСЯ  -- URI документа-источника или сообщения --
  >

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


<!-- INS/DEL обрабатываются при включении в текст BODY -->
<!ELEMENT (INS|DEL) - - (%flow;)*      -- вставленный текст, удалённый текст -->
<!ATTLIST (INS|DEL)
  %attrs;                              -- %coreattrs, %i18n, %events --
  cite        %URI;          #ПРЕДПОЛАГАЕТСЯ  -- цитата или ссылка на другой ресурс --
  datetime    %Datetime;     #ПРЕДПОЛАГАЕТСЯ  -- дата и время изменения --
  >

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

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

<!ELEMENT DL - - (DT|DD)+              -- список definition/определений -->
<!ATTLIST DL
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

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


<!ELEMENT OL - - (LI)+                 -- упорядоченный список -->
<!ATTLIST OL
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!-- Неупорядоченный Список (UL), стиль маркировки -->
<!ELEMENT UL - - (LI)+                 -- неупорядоченный список -->
<!ATTLIST UL
  %attrs;                              -- %coreattrs, %i18n, %events --
  >



<!ELEMENT LI - O (%flow;)*             -- элемент списка -->
<!ATTLIST LI
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!--============================= Формы ===============================================-->

<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- интерактивная форма -->
<!ATTLIST FORM
  %attrs;                              -- %coreattrs, %i18n, %events --
  action      %URI;          #НЕОБХОДИМ -- обработчик формы (на сервере) --
  method      (GET|POST)     GET       -- метод HTTP, используемый для отправки формы --
  enctype     %ContentType;  "application/x-www-form-urlencoded"
  accept      %ContentTypes; #ПРЕДПОЛАГАЕТСЯ  -- список типов MIME для подгрузки файлов --
  name        CDATA          #ПРЕДПОЛАГАЕТСЯ  -- имя формы (для сценариев) --
  onsubmit    %Script;       #ПРЕДПОЛАГАЕТСЯ  -- форма была отправлена --
  onreset     %Script;       #ПРЕДПОЛАГАЕТСЯ  -- форма была очищена --
  accept-charset %Charsets;   #ПРЕДПОЛАГАЕТСЯ  -- список поддерживаемы наборов символов --
  >

<!-- Лэйбл не может содержать более ОДНОГО поля -->
<!ELEMENT LABEL - - (%inline;)* -(LABEL) -- текст лэйбла поля формы -->
<!ATTLIST LABEL
  %attrs;                              -- %coreattrs, %i18n, %events --
  for         IDREF          #ПРЕДПОЛАГАЕТСЯ  -- в паре со значением ID поля --
  accesskey   %Character;     #ПРЕДПОЛАГАЕТСЯ  -- символ быстрого доступа --
  onfocus     %Script;       #ПРЕДПОЛАГАЕТСЯ  -- элемент получил фокус --
  onblur      %Script;       #ПРЕДПОЛАГАЕТСЯ  -- элемент потерял фокус --
  >

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

<!-- имя атрибута требуется для всех, кроме submit и reset -->
<!ELEMENT INPUT - O EMPTY              -- элемент управления формы -->
<!ATTLIST INPUT
  %attrs;                              -- %coreattrs, %i18n, %events --
  type        %InputType;    TEXT      -- тип элемента управления (ЭУ) --
  name        CDATA          #ПРЕДПОЛАГАЕТСЯ  -- отправить как часть формы --
  value       CDATA          #ПРЕДПОЛАГАЕТСЯ  -- для radio-кнопок и переключателей --
  checked     (checked)      #ПРЕДПОЛАГАЕТСЯ  -- для radio-кнопок и переключателей --
  disabled    (disabled)     #ПРЕДПОЛАГАЕТСЯ  -- недоступен в данном контексте --
  readonly    (readonly)     #ПРЕДПОЛАГАЕТСЯ  -- для text и passwd --
  size        CDATA          #ПРЕДПОЛАГАЕТСЯ  -- специфический для каждого типа поля --
  maxlength   NUMBER         #ПРЕДПОЛАГАЕТСЯ  -- максимум символов
						для ввода (в текстовых полях) --
  src         %URI;          #ПРЕДПОЛАГАЕТСЯ  -- для полей с изображениями --
  alt         CDATA          #ПРЕДПОЛАГАЕТСЯ  -- краткое описание --
  usemap      %URI;          #ПРЕДПОЛАГАЕТСЯ  -- использовать клиентские карты изображений --
  ismap       (ismap)        #ПРЕДПОЛАГАЕТСЯ  -- использовать серверные карты изображений --
  tabindex    NUMBER         #ПРЕДПОЛАГАЕТСЯ  -- позиция в порядке табуляции --
  accesskey   %Character;    #ПРЕДПОЛАГАЕТСЯ  -- символ быстрого доступа --
  onfocus     %Script;       #ПРЕДПОЛАГАЕТСЯ  -- элемент получил фокус --
  onblur      %Script;       #ПРЕДПОЛАГАЕТСЯ  -- элемент потерял фокус --
  onselect    %Script;       #ПРЕДПОЛАГАЕТСЯ  -- некоторый текст был выделен --
  onchange    %Script;       #ПРЕДПОЛАГАЕТСЯ  -- значение элемента изменено --
  accept      %ContentTypes; #ПРЕДПОЛАГАЕТСЯ  -- список типов MIME для подгрузки файлов --
  %reserved;                -- зарезервирован для возможного использования в будущем --
  >

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

<!ELEMENT OPTGROUP - - (OPTION)+ -- группа опций -->
<!ATTLIST OPTGROUP
  %attrs;                                    -- %coreattrs, %i18n, %events --
  disabled    (disabled)     #ПРЕДПОЛАГАЕТСЯ  -- недоступен в данном контексте --
  label       %Text;         #НЕОБХОДИМ      -- для использования в иерархических меню --
  >

<!ELEMENT OPTION - O (#PCDATA)         -- переключаемый выбор -->
<!ATTLIST OPTION
  %attrs;                              -- %coreattrs, %i18n, %events --
  selected    (selected)     #ПРЕДПОЛАГАЕТСЯ
  disabled    (disabled)     #ПРЕДПОЛАГАЕТСЯ  -- недоступен в данном контексте --
  label       %Text;         #ПРЕДПОЛАГАЕТСЯ  -- для использования в иерархических меню --
  value       CDATA          #ПРЕДПОЛАГАЕТСЯ  -- по умолчанию для содержимого элемента --
  >

<!ELEMENT TEXTAREA - - (#PCDATA)       -- многострочное поле ввода текста -->
<!ATTLIST TEXTAREA
  %attrs;                              -- %coreattrs, %i18n, %events --
  name        CDATA          #ПРЕДПОЛАГАЕТСЯ
  rows        NUMBER         #ПРЕДПОЛАГАЕТСЯ
  cols        NUMBER         #ПРЕДПОЛАГАЕТСЯ
  disabled    (disabled)     #ПРЕДПОЛАГАЕТСЯ  -- недоступен в данном контексте --
  readonly    (readonly)     #ПРЕДПОЛАГАЕТСЯ
  tabindex    NUMBER         #ПРЕДПОЛАГАЕТСЯ  -- позиция в порядке табуляции --
  accesskey   %Character;    #ПРЕДПОЛАГАЕТСЯ  -- символ быстрого доступа --
  onfocus     %Script;       #ПРЕДПОЛАГАЕТСЯ  -- элемент получил фокус --
  onblur      %Script;       #ПРЕДПОЛАГАЕТСЯ  -- элемент потерял фокус --
  onselect    %Script;       #ПРЕДПОЛАГАЕТСЯ  -- некоторый текст был выделен --
  onchange    %Script;       #ПРЕДПОЛАГАЕТСЯ  -- значение элемента было изменено --
  %reserved;                       -- зарезервирован для возможного использования в будущем --
  >

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

<!ELEMENT LEGEND - - (%inline;)*       -- "легенда" набора полей -->

<!ATTLIST LEGEND
  %attrs;                              -- %coreattrs, %i18n, %events --
  accesskey   %Character;    #ПРЕДПОЛАГАЕТСЯ  -- символ быстрого доступа --
  >

<!ELEMENT BUTTON - -
     (%flow;)* -(A|%formctrl;|FORM|FIELDSET)
     -- кнопка push -->
<!ATTLIST BUTTON
  %attrs;                              -- %coreattrs, %i18n, %events --
  name        CDATA          #ПРЕДПОЛАГАЕТСЯ
  value       CDATA          #ПРЕДПОЛАГАЕТСЯ  -- отсылается на сервер при отправка формы --
  type        (button|submit|reset) submit    -- используется как кнопка формы --
  disabled    (disabled)     #ПРЕДПОЛАГАЕТСЯ  -- недоступен в данном контексте --
  tabindex    NUMBER         #ПРЕДПОЛАГАЕТСЯ  -- позиция в порядке табуляции --
  accesskey   %Character;    #ПРЕДПОЛАГАЕТСЯ  -- символ быстрого доступа --
  onfocus     %Script;       #ПРЕДПОЛАГАЕТСЯ  -- элемент получил фокус --
  onblur      %Script;       #ПРЕДПОЛАГАЕТСЯ  -- элемент потерял фокус --
  %reserved;                      -- зарезервирован для возможного использования в будущем --
  >

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

<!-- IETF стандарт таблиц HTML, см. [RFC1942] -->

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

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

 Значение "border" включено для обеспечения обратной совместимости с
 <TABLE BORDER>, который даёт(?yields) 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 отсутствует, тогда принимается:
     "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) #ПРЕДПОЛАГАЕТСЯ
   char       %Character;    #ПРЕДПОЛАГАЕТСЯ  -- символ выравнивания, напр., char=':' --
   charoff    %Length;       #ПРЕДПОЛАГАЕТСЯ  -- offset/сдвиг? символа выравнивания --"
  >

<!-- атрибуты вертикального выравнивания для содержимого ячеек-->
<!ENTITY % cellvalign
  "valign     (top|middle|bottom|baseline) #ПРЕДПОЛАГАЕТСЯ"
  >

<!ELEMENT TABLE - -
     (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
<!ELEMENT CAPTION  - - (%inline;)*     -- заглавие таблицы -->
<!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;         #ПРЕДПОЛАГАЕТСЯ  -- цель/структура речевого вывода --
  width       %Length;       #ПРЕДПОЛАГАЕТСЯ  -- ширина таблицы --
  border      %Pixels;       #ПРЕДПОЛАГАЕТСЯ  -- ширина рамки вокруг таблицы --
  frame       %TFrame;       #ПРЕДПОЛАГАЕТСЯ  -- какие части фрэйма отображать --
  rules       %TRules;       #ПРЕДПОЛАГАЕТСЯ  -- линии между рядами и столбцами --
  cellspacing %Length;       #ПРЕДПОЛАГАЕТСЯ  -- свободное пространство между ячейками --
  cellpadding %Length;       #ПРЕДПОЛАГАЕТСЯ  -- свободное пространство между 
					        границей ячейки и её содержимым --
  %reserved;                       -- зарезервирован для возможного использования в будущем --
  datapagesize CDATA #ПРЕДПОЛАГАЕТСЯ  -- зарезервирован для возм. использования в будущем --
  >


<!ATTLIST CAPTION
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

<!--
COLGROUP группирует набор элементов COL. Позволяет группировать
несколько семантически связанных столбцов.
-->
<!ATTLIST COLGROUP
  %attrs;                              -- %coreattrs, %i18n, %events --
  span        NUMBER         1         -- значение по умолчанию количества столбцов в группе --
  width       %MultiLength;  #ПРЕДПОЛАГАЕТСЯ  -- значение
						по умолчанию ширины для включённых 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;  #ПРЕДПОЛАГАЕТСЯ  -- спецификация ширины столбца --
  %cellhalign;                         -- горизонтальное выравнивание в ячейках --
  %cellvalign;                         -- вертикальное выравнивание в ячейках --
  >

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

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

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

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



<!-- Область видимости/Scope проще, чем атрибут "шапки" для обычных таблиц -->
<!ENTITY % Scope "(row|col|rowgroup|colgroup)">

<!-- TH - для заголовков, TD - для данных, но для ячеек, действующих двояко, используется TD -->
<!ATTLIST (TH|TD)                      -- ячейка заголовочная|ячейка данных --
  %attrs;                              -- %coreattrs, %i18n, %events --
  abbr        %Text;         #ПРЕДПОЛАГАЕТСЯ  -- сокращение для заголовочной ячейки --
  axis        CDATA          #ПРЕДПОЛАГАЕТСЯ  -- список разделённых
						запятыми относительных заголовков --
  headers     IDREFS         #ПРЕДПОЛАГАЕТСЯ  -- список id заголовочных ячеек --
  scope       %Scope;        #ПРЕДПОЛАГАЕТСЯ  -- область видимости заголовочных ячеек --
  rowspan     NUMBER         1         -- количество рядов, занимаемых ячейкой --
  colspan     NUMBER         1         -- количество столбцов, занимаемых ячейкой --
  %cellhalign;                         -- горизонтальное выравнивание в ячейках --
  %cellvalign;                         -- вертикальное выравнивание в ячейках --
  >


<!--========================== "Шапка" Документа =======================================-->

<!-- %head.misc; определённая ранее как "SCRIPT|STYLE|META|LINK|OBJECT" -->
<!ENTITY % head.content "TITLE & BASE?">

<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- "шапка" документа -->
<!ATTLIST HEAD
  %i18n;                               -- lang, dir --
  profile     %URI;          #ПРЕДПОЛАГАЕТСЯ  -- именованный словарь метаинформации --
  >

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


<!ELEMENT BASE - O EMPTY               -- базовый URI документа -->
<!ATTLIST BASE
  href        %URI;          #НЕОБХОДИМ -- URI, действующий как базовый URI --
  >

<!ELEMENT META - O EMPTY               -- родовая метаинформация -->
<!ATTLIST META
  %i18n;                                     -- lang, dir для использования с содержимым --
  http-equiv  NAME           #ПРЕДПОЛАГАЕТСЯ  -- имя "шапки" для ответа HTTP --
  name        NAME           #ПРЕДПОЛАГАЕТСЯ  -- метаинформационное имя --
  content     CDATA          #НЕОБХОДИМ 	     -- ассоциированная информация --
  scheme      CDATA          #ПРЕДПОЛАГАЕТСЯ  -- выбор формы содержимого --
  >

<!ELEMENT STYLE - - %StyleSheet        -- информация о стиле -->
<!ATTLIST STYLE
  %i18n;                               -- lang, dir для использования с title --
  type        %ContentType;  #НЕОБХОДИМ -- тип содержимого языка стилей --
  media       %MediaDesc;    #ПРЕДПОЛАГАЕТСЯ  -- разработан
						для использования с данным носителем --
  title       %Text;         #ПРЕДПОЛАГАЕТСЯ  -- информативное название --
  >

<!ELEMENT SCRIPT - - %Script;          -- операторы сценария/скрипта -->
<!ATTLIST SCRIPT
  charset     %Charset;      #ПРЕДПОЛАГАЕТСЯ  -- набор символов связанного ресурса --
  type        %ContentType;  #НЕОБХОДИМ -- тип содержимого языка скриптов --
  src         %URI;          #ПРЕДПОЛАГАЕТСЯ  -- URI внешнего скрипта --
  defer       (defer)        #ПРЕДПОЛАГАЕТСЯ  -- ПА может отсрочить выполнение скрипта --
  event       CDATA          #ПРЕДПОЛАГАЕТСЯ  -- зарезервирован
						для возможного использования в будущем --
  for         %URI;          #ПРЕДПОЛАГАЕТСЯ  -- зарезервирован
						для возможного использования в будущем --
  >

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

<!--============================ Структура Документа ==================================-->
<!ENTITY % html.content "HEAD, BODY">

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