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

О SGML и HTML

< Лекция 2 || Лекция 3: 123 || Лекция 4 >
Аннотация: Этот раздел посвящён SGML и его взаимосвязям с HTML. Полное обсуждение SGML находится в стандарте (см. [ISO8879]).

Введение в SGML

SGML - это система определения языков разметки . Авторы размечают свои документы, вводя структурную, представительную и семантическую информацию параллельно с основным содержимым.

HTML - это один из языков разметки. Вот пример документа HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
     "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
   <HEAD>
      <TITLE>My first HTML document</TITLE>
   </HEAD>
   <BODY>
      <P>Hello world!</P>
   </BODY>
</HTML>

Документ HTML состоит из раздела-шапки (здесь - между <HEAD> и </HEAD> ) и тела (здесь - между <BODY> и </BODY> ). Название документа содержится в шапке (наряду с другой информацией о документе), а содержимое документа находится в его теле/body. Тело в этом примере состоит из одного параграфа, помеченного <P>.

Каждый язык разметки, определённый в SGML, называется SGML приложением. Приложение SGML обычно характеризуется:

  1. "Объявлением SGML" . Объявление SGML определяет, какие символы и ограничители могут появляться в приложении.
  2. "Определением типа документов (ОТД)" . ОТД определяет синтаксис конструкций разметки. ОТД может включать дополнительные определения, такие как символьные ссылки-мнемоники.
  3. Спецификация, описывающая семантику, относится к разметке. Эта спецификация также даёт ограничения синтаксиса, которые не могут быть выражены внутри ОТД.
  4. Объектами документа, содержащими данные (содержимое) и разметку. Каждый объект содержит ссылку на ОТД, чтобы иметь возможность быть интерпретированным.

Эта спецификация включает "объявление SGML" , три определения типа документов (см. раздел "информация о версии HTML" ) список ссылок-мнемоник.

Конструкции SGML, используемые в HTML

Следующие разделы посвящены конструкциям SGML, используемым в HTML.

В приложении описаны некоторые возможности SGML, которые не поддерживаются широко утилитами HTML и пользовательскими агентами (ПА), и использование которых должно быть исключено.

Элементы

"Определение типа документа" в SGML определяет типы элементов, представляющих структуру или необходимое поведение. HTML содержит типы элементов, представляющих параграфы, гипертекстовые ссылки, списки, таблицы, изображения и т.д.

Каждое объявление типа элемента обычно описывает три части: начальный тег, содержимое и конечный тег.

Название элемента появляется в начальном теге ( <название-элемента> ) и в конечном теге ( </название-элемента> ); обратите внимание на слэш " / " перед названием элемента в конечном теге. Например, стартовый и конечный теги типа элемента UL обозначают границы списка:

<UL>
<LI><P>...элемент списка 1...
<LI><P>...элемент списка 2...
</UL>

Некоторые элементы HTML допускают отсутствие конечного тега (напр., типы элементов P и LI ).

Немногие элементы допускают также отсутствие и начальных тегов, например, HEAD и BODY. ОТД HTML указывает для каждого типа элементов, требуются ли начальный и конечный теги.

Некоторые типы элементов HTML не имеют содержимого. Например, обрыв строки BR не имеет содержимого, его единственная задача - обозначить конец строки текста. Такие пустые элементы никогда не имеют конечного тега. В "определении типа документа" и в тексте этой спецификации указывается, является ли элемент пустым (не имеет содержимого) или, если он может иметь содержимое, что может быть допустимым содержимым.

Названия элементов всегда нечувствительны к регистру.

См. в стандарте SGML информацию о правилах использования элементов (напр., они должны быть правильно вложены, конечный тег закрывает, назад по направлению к соответствующему начальному тегу, все незакрытые начальные теги с отсутствующими конечными тегами ( "раздел 7.5.1" ) и т.д.).

Например, этот параграф:

<P>Это первый параграф.</P>
...элемент блок...

может быть переписан без конечного тега:

<P>Это первый параграф.
...элемент блок...

поскольку начальный тег <P> закрывается следующим после него блоком. То же самое, если параграф закрыт элементом блок:

<DIV>
<P>Это параграф.
</DIV>

конечный тег окружающего элемента блок (здесь - </DIV> ) подразумевает конечный тег открытого начального тега <P>.

Элементы это не теги. Многие полагают, что элементы - это и есть теги (напр., "тег P "). Помните, что элемент - это одно, а тег ( начальный или конечный) - это другое. К примеру, элемент HEAD всегда представлен, даже если оба тега HEAD, начальный и конечный, отсутствуют в разметке.

Все типы элементов, объявленные в этой спецификации, перечислены в "Индексе элементов" .

Атрибуты

Элементы могут иметь ассоциированные свойства, называемые атрибутами, которые могут иметь значения (по умолчанию или устанавливаемые автором или скриптом). Пары атрибут/значение появляются перед конечным символом " > " начального тега элемента. Любое количество (допустимое) пар атрибута-значений, разделённых пробелами, может появляться в начальном теге элемента. Они могут появляться в любом порядке.

В этом примере атрибут id установлен для элемента H1:

<H1 id="section1">
Это идентифицируемый заголовок, благодаря атрибуту id
</H1>

По умолчанию SGML требует, чтобы все значения атрибутов были ограничены с использованием двойных кавычек либо метки двойной кавычки (ASCII десятеричная 34) или метки одиночной кавычки (ASCII десятеричная 39). Знак одиночной кавычки может быть включен в значение атрибута, если это значение ограничено знаком двойной кавычки, и наоборот. Авторы могут также использовать цифровые ссылки-мнемоники для представления двойной (&#34;) и одинарной (&#39;) кавычек. Для двойных кавычек можно использовать также символьную ссылку-мнемонику &quot;.

В некоторых случаях авторы могут устанавливать значение атрибута без использования кавычек. Значение атрибута может содержать только буквы (a-z и A-Z), цифры (0-9), дефисы (ASCII десятеричная 45), точку (ASCII десятеричная 46), символ подчёркивания (ASCII десятеричная 95) и двоеточие (ASCII десятеричная 58).

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

Названия атрибутов всегда нечувствительны к регистру.

Значения атрибутов вообще нечувствительны к регистру. В определении каждого атрибута в справочнике указано, является ли его значение нечувствительным к регистру.

Все атрибуты, определённые в этой спецификации, перечислены в "индексе атрибутов" .

Ссылки-мнемоники

Ссылки-мнемоники это цифровые или символьные имена символов, которые могут быть включены в документ HTML. Они употребляются как ссылки на редко используемые или затруднительные для воспроизведения авторскими утилитами символы. Вы встретите такие ссылки-мнемоники в этом документе повсюду, они начинаются знаком " & " и заканчиваются точкой с запятой ( ; ). Вот некоторые распространённые сочетания:

  • " &lt; " - знак <
  • " &gt; " - знак >
  • " &quot; " - знак "
  • " &#229; " (десятеричная) буква "a" с маленьким кружком наверху
  • " &#1048; " (десятеричная) кириллическая "И"
  • " &#x6C34; " (шестнадцатеричная) китайский "водяной" символ.

Мы детально обсудим ссылки-мнемоники HTML позже в разделе "набор символов документа HTML" . В этой спецификации есть также "список символьных ссылок" , которые могут употребляться в документах HTML 4.

Комментарии

Комментарии HTML имеют следующий синтаксис:

<!-- это комментарий -->
<!-- и это тоже комментарий,
    занимающий более одной строки -->

Не допускаются пробелы между открывающим ограничителем объявления разметки (" <!") и открывающим ограничителем комментария (" -- "), но разрешаются между закрывающим ограничителем комментария (" -- ") и закрывающим ограничителем объявления разметки (" > "). Обычная ошибка - включение внутрь комментария строки (" --- "). Авторы должны исключить использование внутри комментариев двух или более смежных дефисов.

Информация комментариев не имеет специального значения (напр., ссылки-мнемоники не интерпретируются как таковые).

Обратите внимание, что комментарии это разметка.

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

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

Евгений Летенков
Евгений Летенков
Россия, Москва, РУДН, 2005
Иван Бокарёв
Иван Бокарёв
Австрия