Спецификация HTML 4.01 + Спецификация CSS2

         

Определение модели содержимого


Модель содержимого указывает, что может содержать в себе объект данного типа элементов. Определение модели содержимого может включать:

  • имена допустимых или запрещённых типов элементов (напр., элемент UL

    содержит объекты типа элементов LI, а тип элемента P

    может не содержать других элементов P);

  • объекты ОТД (напр., элемент LABEL содержит объекты объекта-параметра "%inline;");
  • текст документа (обозначаемый конструкцией SGML "#PCDATA"). Текст может содержать ссылки-мнемоники. Напоминаем, что они начинаются знаком & и заканчиваются точкой с запятой (напр., "Hergé's adventures of Tintin" содержит мнемонику символа "e acute").
  • Синтаксис спецификации модели содержимого элемента следующий. Обратите внимание, что данный список является упрощённым по сравнению с полным синтаксисом SGML и не адресует, напр., старшинство.

    ( ... )

    Ограничивает группу.

    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 должны появиться в любом порядке.

    Вот некоторые примеры ОТД HTML:

    <!ELEMENT UL - - (LI)+>

    Элемент UL должен содержать один или более элементов LI.

    <!ELEMENT DL - - (DT|DD)+>

    Элемент DL должен содержать один или более элементов DT

    или DD в любом порядке.

    <!ELEMENT OPTION - O (#PCDATA)>

    Элемент OPTION может содержать только текст и мнемоники, такие как &amp; - это указано SGML типом данных #PCDATA.

    Некоторые типы элементов HTML используют дополнительные возможности SGML для того, чтобы исключить элементы из их модели содержимого. Исключаемым элементам предшествует дефис. Явные исключения переопределяют допустимые элементы.

    В этом примере -(A) означает, что элемент A

    не может появляться в другом элементе A

    (т.е. якоря не могут быть вложенными).

    <!ELEMENT A - - (%inline;)* -(A)>

    Заметьте, что тип элемента A является частью ОТД объекта-параметра "%inline;", но явно исключён, поскольку указано -(A).

    Таким же образом, следующее объявление типа элемента

    FORM запрещает вложение форм:

    <!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM)>



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