Опубликован: 19.05.2006 | Уровень: для всех | Доступ: платный
Лекция 3:

О SGML и HTML

< Лекция 2 || Лекция 3: 123 || Лекция 4 >

Объявление атрибутов

Ключевое слово <!ATTLIST открывает объявление атрибутов, которые могут быть приняты элементом. Следом идёт имя элемента, список определений атрибутов и закрывающий >.

Каждое определение атрибута состоит из трёх частей:

  • имя атрибута ;
  • тип значения атрибута или явно указанный список возможных значений. Значения, определённые явно в ОТД, нечувствительны к регистру. Дополнительную информацию о типах значений атрибутов можно найти в "базовых типах данных HTML" ;
  • предполагается ли значение атрибута по умолчанию (ключевое слово "#ПРЕДПОЛАГАЕТСЯ"), в этом случае значение по умолчанию должно быть предоставлено пользовательским агентом (ПА) (в некоторых случаях - путём наследования от элементов-предков); требуется всегда (ключевое слово "#НЕОБХОДИМ"), или фиксируется данным значением (ключевое слово "#ФИКСИРОВАННЫЙ"). Некоторые определения атрибутов явно определяют для атрибута значение по умолчанию.

В этом примере атрибут name определён для элемента MAP. Атрибут для этого элемента не обязателен.

<!ATTLIST MAP
  name        CDATA     #ПРЕДПОЛАГАЕТСЯ
>

Тип допустимых значений атрибута даётся как CDATA типа данных SGML. CDATA это текст, который может содержать символьные ссылки-мнемоники.

Дополнительную информацию о " CDATA ", " NAME ", " ID " и других типах данных см. в разделе "типы данных HTML" .

Следующие примеры иллюстрируют различные определения атрибутов:

rowspan     NUMBER     1                -- количество рядов таблицы, занимаемых ячейкой --
http-equiv  NAME       #ПРЕДПОЛАГАЕТСЯ  -- имя "шапки" ответа HTTP --
id          ID         #ПРЕДПОЛАГАЕТСЯ  -- уникальный идентификатор документа id -- 
valign      (top|middle|bottom|baseline) #IMPLIED

Атрибут rowspan требует значение типа NUMBER. Значение по умолчанию даётся явно как "1". Предполагаемый атрибут http-equiv требует значений типа NAME. Предполагаемый атрибут id требует значений типа ID. Предполагаемый атрибут valign сконструирован так, чтобы принимать значения из списка {top, middle, bottom, baseline}.

Объекты ОТД в определениях атрибутов

Определения атрибутов могут также содержать ссылки на объекты-параметры.

В этом примере мы видим, что список определения атрибута элемента LINK начинается объектом-параметром " %attrs; ":

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

Объект-параметр " %attrs; " определён так:

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

Объект-параметр " %coreattrs; " в определении " %attrs; " расширяется так:

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

Объект-параметр " %attrs; " определён по соглашению, поскольку эти атрибуты определены для большинства типов элементов HTML.

Таким же образом ОТД определяет объект-параметр " %URI; " и расширяет его в строку " CDATA ".

<!ENTITY % URI "CDATA"
    -- Uniform Resource Identifier,
       см. [URI]
    -->

Как показано в этом примере, объект-параметр " %URI; " даёт читателю больше информации как об ОТД, так и о типе данных, ожидаемых для данного атрибута. Так же определяются объекты-параметры " %Color; ", " %Charset; ", " %Length; ", " %Pixels; " и т.д.

Булевы атрибуты

Некоторые атрибуты играют роль булевых переменных (напр., атрибут selected элемента OPTION ). Их появление в начальном теге элемента подразумевает, что значение атрибута - " true ". Их отсутствие подразумевает, что значение - " false ".

Булевы атрибуты могут принимать единственное значение: само имя атрибута (напр., selected="selected" ).

В этом примере атрибут selected является булевым атрибутом.

selected     (selected)  #IMPLIED  -- опция предустановлена --

Этот атрибут установлен " true " в начальном теге элемента:

<OPTION selected="selected">
...содержимое...
</OPTION>

В HTML булевы атрибуты могут появляться в минимизированной форме - значение атрибута value появляется без дополнения в начальном теге элемента. Таким образом, selected можно установить:

<OPTION selected>

вместо:

<OPTION selected="selected">

Авторы должны учитывать, что многие ПА могут распознавать только минимизированные формы булевых атрибутов, но не полные.

< Лекция 2 || Лекция 3: 123 || Лекция 4 >
Ирина Кириллова
Ирина Кириллова

Нажимаю на ссылку на дополнительный материал и дополнение к информации-меня возвращает на первую страницу лекции. Подскажите, что делать? Или дополнительный материал платный?

Наталья Алмаева
Наталья Алмаева
Россия
Светлана Казьмина
Светлана Казьмина
Россия, Волгодонск