Приглашаем посетить
Станюкович (stanyukovich.lit-info.ru)

Спецификация языка HTML 2.0

Спецификация языка HTML 2.0

Радик Усманов
radik@binep.ac.ru
Сервер FREEnet Web

Сентябрь 8, 1995 г.

Допустимое использование

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

Примечания редактора

Перевод спецификации HTML производился в 1994 году и некоторая информация на момент публикации устарела. По этой причине в оригинальный текст включены примечания (замкнуты в скобках и помечены, как "прим. ред."). Некоторые из них вынесены из текста и размещаются в конце данного документа в разделе "Изменения и дополнения".

Текст перевода


Язык разметки гипертекста (HTML
Проект Internet )
Рабочая группа IIIR

Tim Berners-Lee, CERN
Daniel Connolly, Atrium
июнь 1993

Язык разметки гипертекста

Представление текстовой и метаинформации
для обработки и обмена

Данный документ является проектом Internet. Проекты Internet являются рабочими документами инженерного подразделения сети Internet (IETF), его региональных отделений и рабочих групп. Отметим, что и другие группы могут распространять рабочие документы в качестве проектов Internet.

Проекты Internet являются рабочими документами, действительными не более шести месяцев. Проекты Internet могут быть отменены, обновлены или заменены другими документами в любой момент. Нежелательно делать ссылки на проекты Internet или упоминать их иначе как "рабочие проекты" или "проекты в процессе разработки".

Нет ограничений на распространение этого документа. Данный документ является проектом стандарта для обмена информацией в сетях. Желательно посылать Ваши комментарии по адресу timbl@info.cern.ch или же на обсуждение в www-talk@info.cern.ch .

Данный текст является версией 1.2 рассматриваемого проекта. Этот документ доступен в гипертекстовом виде в системе World-Wide Web http://info.cern.ch/hypertext/WWW/MarkUp/HTML.html (прим. ред. 1)

Аннотация

Язык разметки гипертекста (HyperText Markup Language - HTML) можно использовать для представления:

Программа World Wide Web (W3) инициирует каналы передачи связной информации по всему земному шару. Язык HTML предоставляет простой формат для предоставления этой информации. Требуется, чтобы все программы, совместимые с W3, могли поддерживать язык HTML. Программа W3 использует протокол Internet (протокол передачи гипертекста - HTTP), который позволяет передавать кодированную информацию между клиентом и сервером, при этом результат возвращается через расширенное MIME сообщение. Поэтому язык HTML является лишь одним, но довольно важным, из описаний, используемых в программе W3.

Описание языка HTML ссылается на спецификацию URL в документах RFC.

Реализацию анализаторов и генераторов языка HTML можно найти на различных W3 серверах, в программах просмотра, среди общедоступного исходного кода программы W3. Они также могут быть созданы с использованием различных общедоступных анализаторов SGML, таких, как [SGMLS]. HTML относится к документам типа SGML с очень обобщенной семантикой, пригодной для кодирования информации, получаемой от большого набора прикладных программ. Этот язык является более общим, чем многие другие специфические реализации языка SGML, и вместе с тем он полностью сохраняет независимость от конкретных устройств.

Терминология

Данная спецификация языка использует нижеприведенные слова в заранее определенном значении.

Representation - описание, представление, отображение информации.
Кодирование информации для ее передачи. Например, язык HTML является представлением гипертекста в закодированном виде.
обработка. Форма предоставления информации человеку.

Степень долженствования

"может быть" (may) Реализация языка не обязана во всех случаях следовать данному указанию
"должно" (must, shall) Если данное указание не соблюдается, то реализация не удовлетворяет данной спецификации.
"следовало бы" (should) Если данное указание не выполняется, то хотя данная реализация считается удовлетворяющей стандарту, однако на практике могут возникнуть нежелательные последствия.
"обычно" (typical) Для многих элементов дано описание механизма обычной обработки. Он не является обязательной частью стандарта, однако приведен в качестве описания для разработчиков и для того, чтобы помочь пользователям уяснить, для чего предназначены те или иные элементы языка.

Замечания

Параграфы, этого документа, отмеченные как замечания, не являются обязательной частью спецификации HTML, а всего лишь пояснением к нему.

Классификация элементов в реализации языка HTML

основные Все программы-анализаторы должны распознавать указанные элементы. Все элементы являются главными, если не указано обратное.
дополнительные стандартные элементы языка HTML, которые могут без опасности игнорироваться анализаторами. Правильное действие - игнорировать дополнительные элементы, а содержимое документа обрабатывать так, как если бы в нем не было этих меток (например, это может быть EM или любые неопределенные элементы).
устаревшие Элементы, не являющиеся стандартом языка HTML. Анализаторам следует по возможности поддерживать данные элементы с тем, чтобы сохранить совместимость с предыдущими версиями данной спецификации. .

Подтип языка HTML определяется как:

имя типа в стандарте MIME текст.
имя подтипа html.
обязательные параметры отсутствуют.
необязательные параметры набор символов.

Наборы символов

Базовый набор символов (SGML BASESET) для языка HTML - это ISO Latin-1. На данный набор могут ссылаться любые обращения к символам. Набор символов, реальный используемый при кодировке HTML документа, может быть ISO Latin 1, или же его 7-битная часть, являющаяся набором ASCII-кодов. HTML документу нет нужды включать какие-либо символы, чей десятичный код превышает 127. Возможно, что такой механизм пересылки, как электронная почта, наложит ограничения на количество битов в байтах кодировки документа, хотя протокол HTTP, используемый в программе W3, всегда позволяет передавать 8-битные данные.

Если документ HTML кодируется с использованием 7-битных символов, то для кодировки символов из верхней половины набора ISO Latin-1 могут использоваться механизмы обращений по числовому значению и обращения к объектам. Таким образом, могут быть приготовлены документы, пригодные к пересылке по системам с 7-битными ограничениями.

Введение

Язык разметки гипертекста (HyperText Makeup Language - HTML) формулируется в терминах языка стандартной обобщенной разметки (Standard Generalized Markup Language - SGML) []. Язык SGML представляет собой метод создания структурированных документов, а также языков для их разметки.

В языке SGML каждый документ имеет три части:

  1. Декларации языка SGML, привязывающие к определенным значениям параметры обработки, а также имена синтаксиса. Например, декларация SGML в описании типа документа HTML объявляет, что строка, с которой начинается метка, - это </ , а максимальная длина имени составляет 40 символов.
  2. Пролог, состоящий из одной или нескольких деклараций о типе документа. Они определяют типы элементов, взаимосвязи между элементами и их атрибуты, а также условные обозначения, которые могут быть задействованы при разметке. Декларация HTML DTD, например, указывает, что элемент HEAD содержит по крайней мере один элемент TITLE.
  3. Данные, которые состоят из разметки документа и собственно информации.

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

которая содержит данные. Чтобы создать для обработки на анализаторе SGML объект с документом, необходимо поставить текст HTML DTD перед имеющимися данными.

И наоборот, для реализации анализатора языка HTML необходимо лишь воссоздать те части анализатора SGML, которые необходимы для разбора данных, появляющихся вслед за разбором деклараций HTML DTD.

Структурированный текст

Данные в формате HTML похожи на текстовой файл, за исключением того, что некоторые из символов интерпретируются как разметка. Разметка придает документу некую структуру.

Данные представляют собой иерархию элементов. Каждый элемент имеет имя, атрибуты и несет некую информацию. Большинство элементов представлены в документе в виде начальной метки, указывающей имя и атрибуты. Далее следует собственно содержание элемента. И наконец, заканчивает все это конечная метка. Например,

<HTML>
      <TITLE>
         Простой блок данных
      </TITLE>
      <H1>
         Пример структуры
      </H1>
         Обычный параграф
      <P>
      <UL>
         <LI>Первая запись, включающая
            <A NAME="URI">
               текст
            </A>
         <LI>Вторая запись
      </UL>
   </HTML>

(прим.ред. 2)

Некоторые элементы языка (такие как P, LI) являются пустыми. Они не имеют поля данных, и ограничиваются лишь начальной меткой.

В остальных элементах поле данных представляет собой набор символов и вложенных элементов. Заметим, что описание HTML DTD фактически накладывает некие ограничения на количество допустимых вложений - большинство элементов не могут быть вложены в другие элементы. Ни один из элементов не может быть вложенным сам в себя рекурсивным образом. Анкеры и выделенные символы могут быть помещены в другие конструкции.
(прим.ред. 3)

Метки

Каждый элемент начинается с метки, меткой же и заканчивается каждый непустой элемент. Начальные метки выделяются символами < и >, а конечные - символами </ и >.

Имена

Имя элемента следует в метке сразу за символом открытия <. Имя начинается с буквы, за которой могут следовать еще 33 буквы, цифры, пробела или дефиса. В именах игнорируется разница между прописными и строчными буквами.

Атрибуты

Начальная метка позволяет вставить между именем и символом > пробелы и атрибуты. Атрибут состоит из имени, символа равенства и значения. Слева и справа от символа равенства можно оставлять пробелы.

Значение атрибута указывается в виде строки, заключенной в одинарные или двойные кавычки.

Чтобы определить значение атрибута, осуществляется анализ данной строки в формате RCDATA (см. ниже). Например, такой подход позволяет представлять символы кавычек в значении атрибута как обращения к символам по числовому значению. Длина строки со значением атрибута после такого анализа не должна превышать 1024 символов.

Типы элементов

Имя метки соотносится с типом элемента, объявленным в декларации HTML DTD. Объявление типа элемента ассоциирует его имя со

Пустые элементы


Например:
<!ELEMENT HR - 0 EMPTY>
Это означает, что
<HR> - допустимо
<HR>текст</HR> - недопустимо

Текст

Ключевое слово CDATA указывает на то, что элемент содержит текст. Текстом считается любая информация, расположенная до метки завершения. Например, декларация
<!ELEMENT XMP - - CDATA>
определяет, что нижеприведенный текст является приемлемым XMP элементом.

<xmp>Here's an example. It looks Это пример. Хотя и
like it has <tags> and кажется, что он содержит
<!--comments--> in it, but метки и комментарии, это
it does not. Even this не так. Текстом является
</ is data.</xmp> </ .

Встреченная в тексте комбинация </ идентифицируется как начальный ограничитель завершающей метки только тогда, когда за ней следует буква. Но как только начальный ограничитель завершающей метки опознан, текст элемента CDATA завершается. Следующий пример содержит ошибку:
<xmp>There is no way to represent </end> tags in CDATA </xmp>.

Заменяемый текст

Элементы, содержащие данные типа RCDATA, очень похожи на элементы с данными CDATA. Отличие состоит в том, что содержащийся в них текст может содержать обращения к объектам и обращения к символам по их числовому значению. Элементы, объявленные как
<!ELEMENT TITLE - - RCDATA>
могут содержать любой набор символов в своем тексте.

Обращения к символам по числовому значению

Если пользователь хочет использовать в своих документах какой-либо символ, уже зарезервированный в качестве элемента разметки, то ему следует воспользоваться обращением к нужному символу. Строка &#, за которой следует буква или цифра, указывает на применение условного обозначения вместо символа. За ограничителем следуют цифры десятичного числа и точка с запятой. Например,
<title>You can even represent &#60;/end> tags in RCDATA </title>

Обращения к объектам

(прим.ред. 4)
В декларациях HTML DTD объявлены объекты для символов "менее, чем", "больше, чем" и "амперсанд", а также для каждого символа из набора ISO Latin 1. Так что Вам предоставляется возможность обращаться к символам не только по номеру, но и по имени.

Если за строкой & следует буква или цифра, то это обозначает обращение к объекту. За разграничителем должны следовать имя объекта и точка с запятой. Например,
Kurt G&ouml;del was a famous logician and mathematician.

Замечание.
Убедитесь, что строки документа не содержит никаких неучтенных символов разметки. При написании документов на языке HTML следует замещать все встречающиеся символы <,> и & на обращения к символам по числовому значению или обращения к объектам.

Модели данных в элементе

В некоторых элементах указывается ключевое слово, определяющее не тип, а модель данных. Это означает допустимость применения не только данных, но и вложенных элементов. Если модель данных в элементе не включает символа #PCDATA, то информация в поле данных относится к рассматриваемому элементу. Пробелы в поле данных такого элемента рассматриваются как разметка и игнорируются. Символы, не являющиеся разметкой, и следовательно, относящиеся к данными, недопустимы.

Например, декларация
<!ELEMENT HEAD - - (TITLE? & ISINDEX? & NEXTID? & LINK*)>

<head>
<isindex>
<title>Head Example</title>
</head>
Однако следующие примеры содержат ошибки
<head> no data allowed! </head>
(данные в этом элементе недопустимы)
<head><isindex><title>Two isindex tags</title><isindex></head>
(дважды встречается метка isindex)

Смешанные данные

Если в элементе модель данных содержит символ #PCDATA, то содержимое такого элемента рассматривается как смесь нескольких элементов. Например,
<!ELEMENT PRE - - (#PCDATA | A | B | I | U | P)+>
<!ATTLIST PRE
WIDTH NUMBER #implied
>

Это означает, что элемент PRE состоит из одного или нескольких элементов или текстов A, B, I, U или P. Пример PRE элемента:
<pre>
<b>NAME</b>
cat -- concatenate<a href=''terms.html#file''>files</a>
<b>EXAMPLE</b>
cat <xyz
</pre>

Содержимое предыдущего элемента PRE рассматривается как
A B element
The string '' cat -- concatenate''
An A element
The string ''\n''
Another B element
The string ''\n cat <xyz''

Комментарии и другая разметка

Если Вы хотите включить в HTML документ комментарий таким образом, чтобы он игнорировался анализатором, поставьте перед ним и после него ограничители <!-- и --> соответственно. Весь текст, расположенный между начальным ограничителем и символами --, будет игнорироваться. Следовательно, комментарии не могут быть вложенными. В заключительном ограничителе между -- и символом > можно вставлять пробелы (но в начальном ограничителе между <! и -- вставки не допускаются). Например,
<HEAD>
<TITLE>HTML Guide: Recommended Usage</TITLE>
<!-- $Id: recommended.html,v 1.3 93/01/06 18:38:11 connolly Exp $ -->
</HEAD>

В языке SGML есть несколько конструкций, которые в HTML будут нежелательны или воспринимаются как ошибка.

Ограничитель
<? Инструкция для обработки. Заканчивается символом >.
<![ Выделенная часть документа. В языке HTML выделенные части нежелательны. См. описание SGML стандарта.
<! Выделенная декларация. Заканчивается символом >. Язык HTML не объявляет карту коротких ссылок. Поэтому такая конструкция будет ошибочной.

Разделители строк

Разделитель строки рассматривается как элемент разметки (и соотвественно игнорируется), если он помещен в элемент в начале или конце поля данных. Это позволяет Вам писать либо
<pre>some example text</pre>
либо
<pre>
some example text
</pre>

Оба примера будут обработаны одинаковым образом. Кроме того, если строка документа не является пустой, но все равно не содержит информацию для анализатора, она будет игнорироваться полностью. Например, элемент
<pre>
<!-- this line is ignored, including the linebreak character -->
first line

third line<!-- the following linebreak is content: -->
fourth line<!-- this one's ignored because it's the last piece of
content: -->
</pre>

содержит лишь строки

third line
fourth line

Пробелы и табуляторы

Символы пробелов должны воспроизводиться как горизонтальные пробелы. В языке HTML несколько рядом стоящих символов пробела должны воспроизводиться как один пробел.

Порядок воспроизведения символа горизонтальной табуляции (HT) не определен, и поэтому символ HT не должен использоваться в документах, за исключением тех случаев, когда он является частью элемента PRE (либо вышедших из употребления XMP, LISTING и PLAINTEXT).

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

Список инструментария для разметки

Следующие разделители могут, в зависимости от контекста, производить разметку

Разделитель Его значение
<!-- комментарий
&# обращение к символу по числовому значению
& обращение к объекту
</ метка завершения
<!
]]> конец выделенной части документа (приводит к ошибке)
< начальная метка

Элементы языка HTML

Здесь приведен список элементов, используемых в языке HTML. Документы должны (но не обязательно) содержать элемент HEAD, за которым следует элемент BODY.

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

Общие свойства документа

HEAD

Элемент HEAD содержит всю информацию о документе в целом. Однако он не содержит какого-либо текста. Последний является лишь частью документа и должен находиться в элементе BODY. В элементе заголовка HEAD можно использовать лишь строго заданный набор элементов.

Нижеприведенные элементы определяют общие свойства документа. Они должны появляться в элементе HEAD. Порядок элементов значения не имеет.
TITLE Название элемента.
ISINDEX Элемент, посылаемый серверу вместе с документом, предназначенным для информации к поиску. .
NEXTID Параметр, используемый текстовыми редакторами для создания , уникальных идентификаторов. , (Устарел и не рекомендуется использовать. Прим.ред.).
LINK Анкер.
BASE Запись, сделанная на языке URL при фиксировании данного , документа. .

(прим.ред. 5)

Форматирование текста

В элементе BODY документа встречаются элементы из приведенного ниже списка. Они выстроены в том порядке, в каком должны подаваться на устройство вывода.
Заголовки
(Headings)
Язык поддерживает заголовки разделов различных уровней.
Анкеры
(Anchors)
Части текста, которые формируют начало и/или конец связей в гипертексте, называются, анкерами и формируются меткой A.
Метки параграфов
(Paragraph marks)
Элемент P указывает на границу между параграфами.
Стиль адреса
(Address style)
Этот элемент указывает, в каком стиле предстает перед клиентом элемент ADDRESS.
Выделенный блок текста.
(Blockquote style)
.
Списки списки, словари и т.д.

(Preformatted text)
Части текста, предварительно отформатированные с использованием шрифта фиксированной ширины.
Выделение символов
(Character highlighting)
Элементы форматирования, не вызывающие разбиения на параграфы.

Графика

IMG Метка IMG может использоваться для включения в текст графических изображений.

Устаревшие элементы

Элементы, не указанные выше, считаются устаревшими. Однако они должны распознаваться анализаторами в целях совместимости с предыдущими версиями языка.

BODY

В противоположность элементу HEAD элемент BODY содержит всю ту информацию, из которой собственно и состоит рассматриваемый документ. Порядок следования элементов здесь именно тот, в каком они предстают перед читателем. См. далее список элементов, применимых в пределах элемента BODY.

Анкер (элемент A)

(прим.ред. 3)
Анкер - это некий текст, который указывает на начало и/или конец связи в гипертексте. Текст между открывающей и закрывающей метками определяет начало связи или указываемое ею место (или и то, и другое вместе). Метка анкера может иметь следующие атрибуты:
HREF Необязательный. (Адрес гипертекстовой ссылки. Прим.ред.) Если атрибут HREF установлен, то анкер является точно выверенный текстом - началом соединения. Если читатель выбрал этот текст, то ему (ей) будет представлен другой элемент, чей сетевой адрес определяется значением HREF атрибута. Формат сетевого адреса определяется в другом месте. Такой подход позволяет с помощью формы HREF="#индикатор" ссылаться на другой анкер в том же самом документе. Если же анкер относится к другому документу, атрибут является относительным именем, именем относительно данного документа (либо он указывает базовый адрес, если таковой имеется).
NAME Необязательный. Если этот атрибут указан, то он позволяет данному анкеру быть местом в документе, на которое ссылается какой-либо анкер. Значение атрибута является идентификатором анкера. Идентификатор анкера - это произвольная строка текста, которая тем не менее уникальна в пределах рассматриваемого HTML документа. Другие документы тоже могут создавать ссылки именно на этот анкер, помещая его идентификатор в поле адреса документа после символа #.
Необязательный. Атрибут REL может дать взаимоотношение(ия) в описанной ранее связи гипертекста. Значение атрибута - это список значений для взаимоотношений, написанный через запятую. Значения атрибута и их семантика будут регистрироваться комитетом по языку HTML. Если ничего не указано, то по умолчанию предполагается, что взаимоотношениях не несут каких-либо значений. Атрибут REL нельзя применять, если нет атрибута HREF. См. значения для взаимоотношений, атрибут REV.
REV Необязательный. Полностью аналогичен атрибуту REL за исключением того, что тип соединения имеет обратную семантику. Связь из анкера A в анкер B с атрибутом REL="X" полностью аналогична связи из B в A с атрибутом REV="X". Анкер может иметь оба атрибута REL и REV.
URN Необязательный. Если этот атрибут указан, то это определяет универсальный номер ресурса для данного документа.
TITLE Необязательный. Данный атрибут является чисто информационным. Если атрибут присутствует в анкере, его значение должно (может прим.ред.) совпадать со значением элемента TITLE в документе, чей адрес указан в атрибуте HREF. См. замечание 2.
METHODS Необязательный. Значение этого атрибута - строка. Она должна представлять собой список через запятую методов HTTP, которые программа общего пользования в состоянии поддерживать. См. замечание 3.

Все приведенные выше атрибуты являются необязательными, хотя для того, чтобы анкер действовал, нужны NAME и HREF. См. также описание LINK.

Пример использования анкеров

See <A HREF="http://info.cern.ch/">CERN</A>'s information for more details.

A <A NAME=serious>serious</A> crime is one which is associated with imprisonment.

The Organization may refuse employment to anyone convicted of a <a href="#serious">serious</A> crime.

Замечание 1. Универсальные номера для ресурсов (Universal resource numbers - URN) должны обеспечивать распознавание документа в случае обнаружения его дубликатов. Должно существовать программное обеспечение клиента, осуществляющее отсев копий для уже имеющейся информации.
Формат номеров URN обсуждается различными рабочими группами из инженерного подразделения сети Internet (1993). (На сегодняшний день спецификация URN не определена. Прим.ред.)


Соединение может содержать атрибут TITLE. Если этот атрибут имеется, он должен давать название документа, чей адрес определен в атрибуте HREF. Есть по крайней мере две причины для использования такого атрибута.

Замечание. 3 Атрибут метода для связи (METHODS).
Анкеры и связи используют атрибут метода для указания действий, которые клиент может применять к объектам. Эти действия более точно формулируются в HTTP протоколе, если таковой применяется. Однако этот атрибут, как и атрибут TITLE, в силу некоторых причин может использоваться для повышения информативности соединения. Например, программа чтения может вызывать различные способы визуализации информации в зависимости от разрешенного в атрибуте метода (например, клиент, осуществляющий поиск, может пользоваться различными иконами).

Элемент ADDRESS

Данный элемент предназначен для указания адреса, подписей, авторства и т.д. Элемент появляется часто в начале или конце документа.

Типовая обработка элемента. Обычно элемент адреса использует наклонный шрифт, а также его текст может быть выровнен по правой границе листа. Элемент адреса применяет символ конца параграфа. Разбивка элемента адреса на отдельные параграфы не приводит к появлению в самом тексте документа каких-либо пустых мест. Примеры использования
<ADDRESS><A HREF="Author.html">A.N.Other</A></ADDRESS>

<ADDRESS>
Newsletter editor<p>
J.R.Brown<p>
JimquickPost News, Jumquick, CT 01234<p>
Tel (123) 456 7890
</ARRDESS>

Элемент BASE

Элемент BASE позволяет документу самому назначать URL в случаях, когда он может быть прочтен извне (либо переназначить URL, если это необходимо. Прим.ред). Метки URL в документе могут иметь сокращенную форму и указывать смещение относительно некого базового адреса.

Элемент BASE может иметь только один атрибут - HREF. (Данный элемент применяется только в элементе HEAD. Прим.ред.)

Элемент выделения блока (BLOCKQUOTE)

Элемент BLOCKQUOTE допускает обработку специальным образом текста, выделенного в каком-либо источнике.

Типовая обработка элемента. Типовая обработка может заключаться в дополнительном смещении текста влево или вправо и/или в использовании наклонного шрифта. Элемент BLOCKQUOTE приводит к разбиению текста на параграфы, а также обычно к появлению пустой строки или пробелов между выделенным блоком и предшествующим/ последующим текстом.

Обработка с единым шрифтом может, к примеру, привести к появлению в начале строки символа ">", что соответствует стилю выделения в системе Internet почты.

Пример:
I think it ends
<BLOCKQUOTE>Soft you now, the fair Ophelia, Nymph, in thy orisons,
be all my sins remembered.
</BLOCKQUOTE>
but I am not sure.

Заголовки (Headings)

(прим.ред. 6)

Обрабатывается до шести уровней заголовков (Заметим, что узел в гипертексте, как правило, нуждается в меньшем количестве уровней, чем сочинение, чья структура целиком определяется применением заголовков). Элемент заголовка несет в себе все изменения шрифтов, разбиение на параграфы до и после, пробелы, необходимые, например, для обработки заголовка. Язык HTML не требует применения иных средств для выделения символов или разбивки текста на параграфы.

Заголовок H1 относится к самому верхнему уровню и рекомендуется в качестве начального для узла в гипертексте. Предполагается, что текст первого заголовка будет соответствовать запросам клиента, уже производящего анализ связанной с этим узлом информации. Это отличает заголовок (heading) от названия (title), которое должно характеризовать данный узел в более широком плане.

Элементы заголовка: <H1>, <H2>, <H3>, <H4>, <H5>, <H6>.

Было бы отклонением от правил при переходе от заголовка к заголовку пропускать какой-либо уровень, например, ставить после элемента H1 сразу элемент H3. Хотя такая практика и не запрещена, но нежелательна и может привести к странным результатам при написании других реализаций языка HTML.

Пример
<H1>This is a heading</H1>

<H2>Second level heading</H2>
Here is some more text

Замечание об анализаторах. Анализаторы не должны накладывать какие-либо ограничения на порядок элементов-заголовков, даже если при переходе с заголовка на заголовок допускается пропуск промежуточных уровней. (прим.ред. 7)

Типовые методы обработки

H1 Толстый, очень крупный шрифт, текст центрирован. Между заголовком и последующим текстом вставляется одна или две пустых строки. При выводе на принтер заголовок печатается на новой странице.
H2 Толстый крупный шрифт. Без отступа. До и после заголовка помещаются одна или две пустых строки.
H3 Наклонный большой шрифт. До и после заголовка помещаются одна или две пустые строки. С небольшим отступом.
H4 Толстый нормальный шрифт. Отступ больше, чем в H3. До и после заголовка помещается пустая строка.
H5 Наклонный нормальный шрифт. Отступ как у заголовка H4. Пустая строка ставится перед заголовком, но не после.
H6 Толстый шрифт. Отступ такой же, как у обычного текста и больше, чем у H5. Перед заголовком ставится пустая строка.

Эти типовые значения являются всего лишь указанием для анализатора в программе просмотра гипертекста. Клиент может получить опции для самостоятельной настройки стилей. Но при написании документов Вы должны исходить из того, что где бы ни появился элемент заголовка, он будет иметь именно тот эффект, как описано выше.

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

IMG: Встроенные изображения

Статус: дополнительный

Элемент IMG позволяет вставлять информацию из другого документа. Последний обычно является иконкой, маленькой картинкой и т.д. Элемент IMG не предназначен для вставки дополнительного HTML текста.

Те анализаторы гипертекста, которые не могут показывать встроенные изображения, элементы IMG игнорируют. Авторам документов следует взять на заметку, что некоторые анализаторы могут показывать (или печатать на принтере) связанные с данным документом изображения, но не встроенные. Если изображение имеет большое значение, может оказаться более разумным создать с ним связь, нежели делать это изображение встроенным в гипертекст. Если же изображение является в значительной степени декоративным, более удобным будет применение элемента IMG.

Элемент IMG является пустым (не имеет заключительной метки) и имеет два атрибута:

SRC
ALIGN Это атрибут, принимая значения TOP, MIDDLE или BOTTOM, определяет, верхняя, средняя или нижняя часть изображения должна быть поставлена вровень с текстом.

В тексте анкеров допускается применение элементов IMG.

Пример
Warning: < IMG SRC ="triangle.gif">
Thus must be done by a qualified
technician.
< A HREF="Go">< IMG SRC ="Button"> Press to start</A>

ISINDEX

Элемент ISINDEX информирует читателя о том, что данный документ является индексным указателем. По его прочтении клиент может применять поиск по ключевому слову. К узлу гипертекста можно обратиться при поиске по ключевому слову, сопроводив адрес узла знаком вопроса и списком ключевых слов, разделенных символами плюса. См. формат сетевого адреса.

Заметим, что эта метка обычно автоматически генерируется сервером. Если метка ISINDEX добавлена в документ HTML вручную, то сделавший это клиент предполагает, что данный сервер способен осуществлять поиск в этом документе. Ведь очевидно, что сервер должен обладать такой возможностью: простое добавление элементов <ISINDEX> в документ не способствует успешному выполнению запросов на поиск, если сервер не обладает требуемым для поиска инструментарием!

LINK

Элемент LINK появляется в границах элемента HEAD документа HTML. Он используется для указания взаимоотношения между данным документом и каким-либо другим объектом. Документ может иметь любое количество элементов LINK. Элемент LINK является пустым (не содержит метки завершения), но имеет те же атрибуты, что и элемент анкер.

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

Формы списков в языке HTML

Словарь (или список определений, DL) - это список в виде параграфов, каждый из которых имеет рядом с собой короткое название. За пределами словарей этот элемент используется для предоставления читателю набора названных элементов. В словаре допустимо применение следующих элементов:

DT "Понятие, термин". Обычно помещается в текст словаря после большого отступа слева.
DD "Определение", которое может занимать много строк.

COMPACT предписывает применение компактного алгоритма обработки, поскольку элементы списка по отдельности малы, либо весь список достаточно велик, либо имеет место и то и другое.

Типовой метод обработки

Пары элементов DT, DD в списке определений начинаются с одной и той же строки. В каждой паре элемент DT стоит слева и занимает примерно треть места на дисплее. Элемент DD стоит справа и занимает оставшиеся две трети. Термин DT обычно занимает достаточно мало места, чтобы уместиться в выделенной ему колонке. Если же термин длиннее, то он будет продолжен на этой строке далее. В этом случае текст элемента DD будет смещен на одну строку вниз, с тем, чтобы не пересечься с термином DT. Либо термин DT может быть разбит на несколько строк в левой колонке. Как правило, даже несмотря на присутствие атрибута COMPACT, между следующими друг за другом парами DT и DD остаются пробелы. Атрибут COMPACT применяется для списков, имеющих большой размер и/или использующих пары элементов DT, DD, которые занимают лишь одну-две строки. Конечно, программа обработки может самостоятельно фиксировать такие случаи и принимать соответствующие решения, что следует поощрять.

Атрибут COMPACT может также уменьшать левую колонку (колонку терминов - DT).

Пример использования
<DL>
<DT>Term the first<DD>definition paragraph is reasonably
long but is still displayed clearly
<DT>Term2 follows<DD>Definition of term2
</DT>

<DL COMPACT>
<DT>Term<DD>definition paragraph
<DT>Term2<DD>Definition of term2
</DL>

Списки

Список - это последовательность параграфов, каждому из которых может предшествовать специальная метка или очередной номер. Синтаксис списка:
<UL>
<LI> list element
<LI> another list element ...
</UL>

Открывающими метками для списка могут быть UL, OL, MENU или DIR. Сразу за открывающей меткой должен следовать первый элемент списка. Типовая обработка

Здесь мы не определяем порядок воспроизведения списков, однако должны быть четко оговорены размеченный список для случая неупорядоченных списков и очередь нумерованных параграфов для упорядоченного списка. Среди других возможностей для интерактивного показа списков - встроенные панели скроллинга для ускоренного просмотра.

Список элементов, имеющих типовые алгоритмы обработки:
UL Список многострочных параграфов, обычно разделенных несколькими пробелами и/или размеченный кружками или крупными черными точками.
OL Этот элемент похож на элемент UL, за исключением того, что параграфы нумеруются.
MENU Список параграфов меньшего размера. Обычно на одну запись приходится лишь одна строка, а ее стиль более компактен, чем в случае элемента UL.
DIR Список элементов, чей размер, как правило, не превышает 20 символов. Элементы могут размещаться в несколько колонок на странице, причем ширина такой колонки обычно 24 символа. Намного лучше, если программа обработки в состоянии оптимизировать ширину колонки в зависимости от ширины составляющих ее элементов.

Пример использования
<OL>
<LI> When you get to the station, leave
by the southern exit, on platform one.
<LI>Turn left to face toward the mountain
<LI>Walk for a mile or so until you reach the
"Asquith Arms" then
<LI>Wait and see ...
</OL>

< MENU >
<LI>The oranges should be pressed fresh
<LI>The nuts may come from a packet
<LI>The gin must be good quality
</MENU>

< DIR >
<LI>A-H<LI>I-M
<LI>M-R<LI>S-Z
</DIR>

P: Метка параграфа

Пустой элемент P служит разделителем параграфов. Конкретная процедура обработки (отступы, инструкции и т.д.) здесь не оговаривается и может зависеть от наличия иных меток, стилей и т.д.

Метка <P> ставится между двумя частями текста для их разделения.

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

Типовая обработка

Обычно метка <P> создает небольшой вертикальный пропуск между параграфами (одна строка или полстроки). Этого не происходит (как правило) в тексте элементов ADDRESS и (даже) PRE. В некоторых версиях в обычном тексте метка <P> может также создавать небольшой отступ слева в первой строке открываемого ею параграфа.

Примеры использования
<h1>What to do</h1>
This is a one paragraph.<p>This is a second.
< P >
This is a third.


<h1>P>What not to do</h1>
<p>I found that on my XYZ browser it looked prettier to
me if I put some paragraph marks
<p>
<ul><p><li>Around lists, and
<li>After headings.
</ul>
<p>
Mome of the paragraph marks in this example should
be there.

PRE: предварительно отформатированный текст

В языке HTML предварительно отформатированный текст отображается в виде текста, использующего шрифт фиксированной ширины.

Необязательный атрибут этого элемента
WIDTH Этот атрибут задает максимальное количество символов, которые может содержать строка текста. Эта информация позволяет системе обработки выбирать соответствующие данному случаю шрифты и отступ. В случаях, когда атрибут WIDTH не идентифицирован, рекомендуется выбирать ширину 80 символов. В случаях, когда атрибут WIDTH присутствует, рекомендуется иметь фиксированный набор размеров 40, 80 и 132 символа, остальные значения атрибута должны быть промежуточными.

В пределах элемента PRE:

Пример использования
<PRE WIDTH="80">
This is an example line
</PRE>

Замечание: выделение текста

В пределах предварительно отформатированного элемента горизонтальное смещение должно осуществляться на определенное количество позиций, чья ширина соответствует ширине символа. Это может препятствовать или даже блокировать специальные смещения выделенных элементов.

Замечание: границы строки

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

Название документа

Название документа задается элементом TITLE. В документе элемент TITLE должен быть частью элемента HEAD. Любой документ может иметь не более одного названия. Название должно характеризовать содержание элемента в более широком плане. Название не является всего лишь частью текста в документе. Оно относится ко всему документу в целом. Название не может содержать анкеры, разделители параграфов, выделение символов. Название документа может использоваться при идентификации узла в архивном списке, в качестве метки на окне, показывающем этот узел гипертекста. Название, как правило, не появляется в текстовом поле документа. Названия противопоставляются заголовкам. В идеале, размер названия документа не должен превышать 64 символов. Это необходимо, поскольку многие прикладные программы будут показывать названия документов в качестве названий окон, в качестве опций меню и в других полях ограниченного размера. Поскольку фактически нет ограничений на длину названия документа (а само название может формироваться в результате комбинирования некой дополнительной информации), то, выбирая название создаваемому документу, следует помнить, что оно может быть усечено другими программами, если окажется для них слишком длинным.

Примеры использования

Примеры приемлемых названий
<TITLE>Rivest and Neuman. 1989(b)</TITLE>
или
<TITLE>A Recipe for Maple Syrup Flap-Jack</TITLE>
или
<TITLE>Introduction -- AFS user's Guide</TITLE>

Примеры неприемлемых заголовков

Заголовок, имеющий смысл лишь в случае привязки к конкретному контексту
<TITLE>Introduction</TITLE>

<TITLE>Remarks on the Quantum-Gravity effects of "Bean
Pone"diversification in Mononucleosis patients in Developing
Countries under Economic Conditions Prevalent during
the Second half of the Twentieth Century, and Related Papers:
a Summary</TITLE>

Выделение символов

Элементы выделения позволяют форматировать отдельные части текста особым образом, производить выделение и т.д. Метки выделения не приводят к разбиению на параграфы и могут применяться к отдельным кускам текста внутри параграфов. Как и все метки, не поддерживаемые имеющимися версиями анализаторов языка HTML, эти метки будут игнорироваться, однако размеченный ими текст будет обрабатываться как и любой другой.

Все метки выделения имеют соответствующие им завершающие метки, как в этом примере

This is <EM>emphasized</EM> text.

Практическая реализация одних стилей выделения более очевидна. Для других - менее. Логические стили можно применять в любом месте, если, к примеру, нет нужды ссылаться в тексте на процедуру форматирования (например, "обязательно использование наклонного шрифта для отдельных частей текста").

Замечание

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

Имена для этих элементов заимствованы у макросов TeXInfo.

Физические стили

(лучше использовать термин - типографические. Прим.ред.)

TT Шрифт фиксированной ширины.
B Толстый или еще каким-либо образом выделенный шрифт.
I Наклонный шрифт (или искаженный каким-либо образом, если просто наклон невозможен).
U

Логические стили

EM Выделение символов (обычно наклон шрифта). (смысловое усиление определенного слова или фразы. прим.ред.)
STRONG Более четкое выделение (обычно применение более жирного шрифта). (выделение, привлечение внимания. прим.ред.)
CODE Пример кода. Обычно фиксированный шрифт (не путать с элементом PRE). (формулы, выражения. прим.ред.)
SAMP Последовательность символов. (названия команд, примеры. прим.ред.)
KBD Текст, набираемый пользователем. Этот стиль применяется в описаниях.
VAR Имя переменной. (имена переменных в примерах, формулах. прим.ред.)
DFN Официально считается расширением в версии HTML 2.0. прим.ред.)
CITE Цитата. Обычно наклонный шрифт. (названия документов, выдержки из документов, цитируемые фразы и т.д. прим.ред.)

Пример использования
This text contains an <em>emphasized</em> word.
<strong>Don't assume</strong> that it will be italic!
It was made using the <CODE>EM</CODE> element. A citation is
typically italic and was no formal necessary structure:
<cite>Moby Dick></cite> is a book title.

Устаревшие элементы

Следующие элементы являются устаревшими в языке HTML. Рекомендуется, чтобы программы обслуживания клиента могли все же обрабатывать эти устаревшие элементы с целью совместимости со старыми серверами.

Plaintext (незакодированный текст)

Статус: устаревший

Пустая метка PLAINTEXT завершает документ на языке HTML. Позади этой метки уже не ставятся какие-либо записи на языке SGML. Вместо этого, по старому соглашению протокола HTTP, за меткой Plaintext следует ASCII текст (в стандарте MIME тип данных "text/plain").

Пример использования элемента
<PLAINTEXT>
0001 This is line one of a ling listing
0002 file from <any.@host.inc.com> which is sent

элемента отсутствует. Остаток файла не содержит также каких-либо записей на языке SGML.

XMP и LISTING: поля примеров в документе

Статус: устаревший

Данные элементы еще находят применение и должны распознаваться применяющимися в настоящее время анализаторами. С другой стороны, новые серверы должны использовать вместо этих элементов элемент <PRE>. Стили XMP и LISTING позволяют включать в документ отдельный кусок текста, состоящий из символов фиксированной ширины. Синтаксис элементов
<LISTING>
... </LISTING>
или
<XMP>
...
</XMP>

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

Элемент LISTING отображается в виде текста с количеством символов в строке не более 132. Элемент XMP изображается с применением такого шрифта, что в строке помещается до 80 символов, в остальном он аналогичен элементам LISTING.

Выделение выражений HP1 и т.д.

Статус: устаревший

Как и все остальные, эти элементы могут игнорироваться, если нет соответствующего программного обеспечения. Следует заменять их более информативными элементами - см. Выделение символов.

Примеры использования
<HP1> ... </HP1> <HP2> ... </HP2> и т.д.

(В последних версиях спецификации HTML этот элемент устранен. прим.ред.)

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

Исторические заметки: XMP и LISTING

Исторически элементы XMP и LISTING использовались для указания спецификации, отличающейся от языка SGML. В этой спецификации текст мог иметь любые печатные символы из набора ISO Latin, а также символ начала метки, поскольку завершающая метка в этой спецификации отсутствовала вовсе.

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

Объекты

(Entities. Прим.ред.)

В языке HTML применяются нижеуказанные имена объектов. Этим именам всегда предшествует амперсанд (&), а за ними следует точка с запятой. Объекты представляют конкретные графические символы, имеющие определенное значение при разметке, или же они не относятся к символам, которые не могут быть напечатаны иным образом.

&lt; символ "меньше чем" <
&gt; символ "больше чем" >
&amp; символ амперсанда &.
&quot; символ двойных кавычек "

Кроме этих символов допустимы обращения с применением имен из нижеприведенной таблицы к любой из букв набора ISO Latin-1. Данный список заимствован из документа "ISO 8879:1986//ENTITIES Added Latin 1//EN".

&AElig; заглавная AE дифтонг (наборный знак из двух символов)
&Aacute;
&Acirc; заглавная A, диакритическое ударение
&Agrave; заглавная A, тупое ударение
&Aring; заглавная A, с символом круга
&Atilde; заглавная A, с тильдой
&Auml; заглавная A, с символом умляута
&Ccedil; заглавная C, седиль
&ETH; заглавная "эс", исландская
&Eacute; заглавная E, сильное ударение
&Ecirc; заглавная E, диакритическое ударение
&Egrave;
&Euml; заглавная E, с символом умляута
&Iacute; заглавная I, сильное ударение
&Icirc; заглавная I, диакритическое ударение
&Igrave; заглавная I, тупое ударение
&Iuml; заглавная I, с символом умляута
&Ntilde; заглавная N, с тильдой
&Oacute; заглавная O, сильное ударение
&Ocirc; заглавная O, диакритическое ударение
&Ograve; заглавная O, тупое ударение
&Oslash;
&Otilde; заглавная O, с тильдой
&Ouml; заглавная O, с символом умляута
&THORN; заглавная "торн", исландская
&Uacute; заглавная U, сильное ударение
&Ucirc; заглавная U, диакритическое ударение
&Ugrave; заглавная U, тупое ударение
&Uuml; заглавная U, с символом умляута
&Yacute; заглавная Y, сильное ударение
&aacute; маленькая a, сильное ударение
&acirc;
&aelig; маленькая ae дифтонг (наборный знак из двух символов)
&agrave; маленькая a, тупое ударение
&aring; маленькая a, с символом круга
&atilde; маленькая a, с тильдой
&auml; маленькая a, с символом умляута
&ccedil; маленькая c, седиль
&eacute; маленькая e, сильное ударение
&ecirc; маленькая e, диакритическое ударение
&egrave; маленькая e, тупое ударение
&eth;
&euml; маленькая e, с символом умляута
&iacute; маленькая i, сильное ударение
&icirc; маленькая i, диакритическое ударение
&igrave; маленькая i, тупое ударение
&iuml; маленькая i, с символом умляута
&ntilde; маленькая n, с тильдой
&oacute; маленькая o, сильное ударение
&ocirc; маленькая o, диакритическое ударение
&ograve; маленькая o, тупое ударение
&oslash;
&otilde; маленькая o, с тильдой
&ouml; маленькая o, с символом умляута
&szlig; маленькая sharp s, немецкая (наборный знак из двух символов sz)
&thorn; маленькая "торн", исландская
&uacute; маленькая u, сильное ударение
&ucirc; маленькая u, диакритическое ударение
&ugrave; маленькая u, тупое ударение
&uuml; маленькая u, с символом умляута
&yacute; маленькая y, сильное ударение
&yuml;

HTML DTD

Ниже приведен текст заголовка HTML DTD. В главе "HTML и SGML" дано описание его связи с текстом документа, написанного на языке SGML.

----------------------------------------------------------------
<!SGML "ISO 8879:1986"

-- Document Type Definition for the HyperText Markup Language as used by the World Wide Web application (HTML DTD).

NOTE: This is a definition of HTML with respect to SGML, and assumes an understanding of SGML terms.

--

CHARSET
         BASESET  "ISO 646:1983//CHARSET
                   International Reference Version (IRV)//ESC 2/5 4/0"
         DESCSET  0   9   UNUSED
                  9   2   9
                  11  2   UNUSED
                  13  1   13
                  14  18  UNUSED
                  32  95  32
                  127 1   UNUSED
     BASESET   "ISO Registration Number 100//CHARSET
                ECMA-94 Right Part of Latin Alphabet Nr. 1//ESC 2/13 4/1"
     DESCSET   128 32 UNUSED
               160 95 32
               255  1 UNUSED
CAPACITY        SGMLREF
                TOTALCAP        150000
                GRPCAP          150000
SCOPE    DOCUMENT
SYNTAX
         SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
 18
                           19 20 21 22 23 24 25 26 27 28 29 30 31 127
255
         BASESET  "ISO 646:1983//CHARSET
                   International Reference Version (IRV)//ESC 2/5 4/0"
         DESCSET  0 128 0
         FUNCTION RE          13
                  RS          10
                  SPACE       32
                  TAB SEPCHAR  9
         NAMING   LCNMSTRT ""
                  UCNMSTRT ""
                  LCNMCHAR ".-"
                  UCNMCHAR ".-"
                  NAMECASE GENERAL YES
                           ENTITY  NO
         DELIM    GENERAL  SGMLREF
                  SHORTREF SGMLREF
         NAMES    SGMLREF
         QUANTITY SGMLREF
                  NAMELEN  34
                  TAGLVL   100
                  LITLEN   1024
                  GRPGTCNT 150
                  GRPCNT   64
FEATURES
  MINIMIZE
    DATATAG  NO
    OMITTAG  NO
    RANK     NO
    SHORTTAG NO
  LINK
    SIMPLE   NO
    IMPLICIT NO
    EXPLICIT NO
  OTHER
    CONCUR   NO
    SUBDOC   NO
    FORMAL   YES
  APPINFO    NONE
> 
<!DOCTYPE HTML [
<!-- Jul 1 93 -->
<!--    Regarding clause 6.1, SGML Document:
        [1] SGML document = SGML document entity,
            (SGML subdocument entity |
            SGML text entity | non-SGML data entity)*
        The role of SGML document entity is filled by this DTD,
        followed by the conventional HTML data stream.
-->
<!-- DTD definitions -->
<!ENTITY % heading "H1|H2|H3|H4|H5|H6" >
<!ENTITY % list "UL|OL|DIR|MENU">
<!ENTITY % literal "XMP|LISTING">
<!ENTITY % headelement
         "TITLE|NEXTID|ISINDEX" >
<!ENTITY % bodyelement
         "P | %heading |
         %list | DL | HEADERS | ADDRESS | PRE | BLOCKQUOTE
        | %literal">
<!ENTITY % oldstyle "%headelement | %bodyelement | #PCDATA">
<!ENTITY % URL "CDATA"
        -- The term URL means a CDATA attribute
           whose value is a Uniform Resource Locator,
           as defined. (A URN may also be usable here when defined.)
        -->
<!ENTITY % linkattributes
        "NAME NMTOKEN #IMPLIED
        HREF %URL; #IMPLIED
        REL CDATA #IMPLIED -- forward relationship type --
        REV CDATA #IMPLIED -- reversed relationship type
                              to referent data:
                                PARENT CHILD, SIBLING, NEXT, TOP,
                                DEFINITION, UPDATE, ORIGINAL etc. --
        URN CDATA #IMPLIED -- universal resource number --
        TITLE CDATA #IMPLIED -- advisory only --
        METHODS NAMES #IMPLIED -- supported public methods of the object:
                                        TEXTSEARCH, GET, HEAD, ... --
        ">
<!-- Document Element -->
<!ELEMENT HTML O O  (( HEAD | BODY | %oldstyle)*, PLAINTEXT?)>
<!ELEMENT HEAD - -  (TITLE? & ISINDEX? & NEXTID? & LINK*
                              & BASE?)>
<!ELEMENT TITLE - -  RCDATA
          -- The TITLE element is not considered part of the flow of text.
             It should be displayed, for example as the page header or
             window title.
          -->
<!ELEMENT ISINDEX - O EMPTY
          -- WWW clients should offer the option to perform a search on
             documents containing ISINDEX.
          -->
<!ELEMENT NEXTID - O EMPTY>
<!ATTLIST NEXTID N NAME #REQUIRED
          -- The number should be a name suitable for use
             for the ID of a new element. When used, the value
             has its numeric part incremented. EG Z67 becomes Z68
          -->
<!ELEMENT LINK - O EMPTY>
<!ATTLIST LINK
        %linkattributes>
        
<!ELEMENT BASE - O EMPTY    -- Reference context for URLS -->
<!ATTLIST BASE
        HREF %URL; #IMPLIED
        >
<!ENTITY % inline "EM | TT | STRONG | B | I | U |
                        CODE | SAMP | KBD | KEY | VAR | DFN | CITE "
        >
<!ELEMENT (%inline;) - - (#PCDATA)>
<!ENTITY % text "#PCDATA | IMG | %inline;">
<!ENTITY % htext "A | %text">
<!ELEMENT BODY - -  (%bodyelement|%htext;)*>
<!ELEMENT A     - -  (%text)>
<!ATTLIST A
        %linkattributes;
        >
<!ELEMENT IMG    - O EMPTY --  Embedded image -->
<!ATTLIST IMG
        SRC %URL; #IMPLIED      -- URL of document to embed --
        >
<!ELEMENT P     - O EMPTY -- separates paragraphs -->
<!ELEMENT ( %heading )  - -  (%htext;)+>
<!ELEMENT DL    - -  (DT | DD | P | %htext;)*>
<!--    Content should match ((DT,(%htext;)+)+,(DD,(%htext;)+))
        But mixed content is messy.
  -->
<!ELEMENT DT    - O EMPTY>
<!ELEMENT DD    - O EMPTY>
<!ELEMENT (UL|OL) - -  (%htext;|LI|P)+>
<!ELEMENT (DIR|MENU) - -  (%htext;|LI)+>
<!--    Content should match ((LI,(%htext;)+)+)
        But mixed content is messy.
  -->
<!ATTLIST (%list)
        COMPACT NAME #IMPLIED -- COMPACT, etc.--
        >
<!ELEMENT LI    - O EMPTY>
<!ELEMENT BLOCKQUOTE - - (%htext;|P)+
        -- for quoting some other source -->
<!ELEMENT ADDRESS - - (%htext;|P)+>
<!ELEMENT PRE - - (#PCDATA|%inline|A|P)+>
<!ATTLIST PRE
        WIDTH NUMBER #implied
        >
<!-- Mnemonic character entities. -->
<!ENTITY AElig "&#198;" -- capital AE diphthong (ligature) -->
<!ENTITY Aacute "&#193;" -- capital A, acute accent -->
<!ENTITY Acirc "&#194;" -- capital A, circumflex accent -->
<!ENTITY Agrave "&#192;" -- capital A, grave accent -->
<!ENTITY Aring "&#197;" -- capital A, ring -->
<!ENTITY Atilde "&#195;" -- capital A, tilde -->
<!ENTITY Auml "&#196;" -- capital A, dieresis or umlaut mark -->
<!ENTITY Ccedil "&#199;" -- capital C, cedilla -->
<!ENTITY ETH "&#208;" -- capital Eth, Icelandic -->
<!ENTITY Eacute "&#201;" -- capital E, acute accent -->
<!ENTITY Ecirc "&#202;" -- capital E, circumflex accent -->
<!ENTITY Egrave "&#200;" -- capital E, grave accent -->
<!ENTITY Euml "&#203;" -- capital E, dieresis or umlaut mark -->
<!ENTITY Iacute "&#205;" -- capital I, acute accent -->
<!ENTITY Icirc "&#206;" -- capital I, circumflex accent -->
<!ENTITY Igrave "&#204;" -- capital I, grave accent -->
<!ENTITY Iuml "&#207;" -- capital I, dieresis or umlaut mark -->
<!ENTITY Ntilde "&#209;" -- capital N, tilde -->
<!ENTITY Oacute "&#211;" -- capital O, acute accent -->
<!ENTITY Ocirc "&#212;" -- capital O, circumflex accent -->
<!ENTITY Ograve "&#210;" -- capital O, grave accent -->
<!ENTITY Oslash "&#216;" -- capital O, slash -->
<!ENTITY Otilde "&#213;" -- capital O, tilde -->
<!ENTITY Ouml "&#214;" -- capital O, dieresis or umlaut mark -->
<!ENTITY THORN "&#222;" -- capital THORN, Icelandic -->
<!ENTITY Uacute "&#218;" -- capital U, acute accent -->
<!ENTITY Ucirc "&#219;" -- capital U, circumflex accent -->
<!ENTITY Ugrave "&#217;" -- capital U, grave accent -->
<!ENTITY Uuml "&#220;" -- capital U, dieresis or umlaut mark -->
<!ENTITY Yacute "&#221;" -- capital Y, acute accent -->
<!ENTITY aacute "&#225;" -- small a, acute accent -->
<!ENTITY acirc "&#226;" -- small a, circumflex accent -->
<!ENTITY aelig "&#230;" -- small ae diphthong (ligature) -->
<!ENTITY agrave "&#224;" -- small a, grave accent -->
<!ENTITY amp "&amp;" -- ampersand -->
<!ENTITY aring "&#229;" -- small a, ring -->
<!ENTITY atilde "&#227;" -- small a, tilde -->
<!ENTITY auml "&#228;" -- small a, dieresis or umlaut mark -->
<!ENTITY ccedil "&#231;" -- small c, cedilla -->
<!ENTITY eacute "&#233;" -- small e, acute accent -->
<!ENTITY ecirc "&#234;" -- small e, circumflex accent -->
<!ENTITY egrave "&#232;" -- small e, grave accent -->
<!ENTITY eth "&#240;" -- small eth, Icelandic -->
<!ENTITY euml "&#235;" -- small e, dieresis or umlaut mark -->
<!ENTITY gt "&#62;" -- greater than -->
<!ENTITY iacute "&#237;" -- small i, acute accent -->
<!ENTITY icirc "&#238;" -- small i, circumflex accent -->
<!ENTITY igrave "&#236;" -- small i, grave accent -->
<!ENTITY iuml "&#239;" -- small i, dieresis or umlaut mark -->
<!ENTITY lt "&lt;" -- less than -->
<!ENTITY ntilde "&#241;" -- small n, tilde -->
<!ENTITY oacute "&#243;" -- small o, acute accent -->
<!ENTITY ocirc "&#244;" -- small o, circumflex accent -->
<!ENTITY ograve "&#242;" -- small o, grave accent -->
<!ENTITY oslash "&#248;" -- small o, slash -->
<!ENTITY otilde "&#245;" -- small o, tilde -->
<!ENTITY ouml "&#246;" -- small o, dieresis or umlaut mark -->
<!ENTITY szlig "&#223;" -- small sharp s, German (sz ligature) -->
<!ENTITY thorn "&#254;" -- small thorn, Icelandic -->
<!ENTITY uacute "&#250;" -- small u, acute accent -->
<!ENTITY ucirc "&#251;" -- small u, circumflex accent -->
<!ENTITY ugrave "&#249;" -- small u, grave accent -->
<!ENTITY uuml "&#252;" -- small u, dieresis or umlaut mark -->
<!ENTITY yacute "&#253;" -- small y, acute accent -->
<!ENTITY yuml "&#255;" -- small y, dieresis or umlaut mark -->
<!-- deprecated elements -->
<!ELEMENT (%literal) - -  CDATA>
<!ELEMENT PLAINTEXT - O EMPTY>
<!-- Local Variables: -->
<!-- mode: sgml -->
<!-- compile-command: "sgmls -s -p " -->
<!-- end: -->
]> 

----------------------------------------------------------------

Значения для взаимоотношений
между документами или их частями

(Relationships. Прим.ред.)

Статус. Приведенный в этой главе список не является частью стандарта. Его назначение - иллюстрация примеров использования взаимоотношений, а также создание основы для дальнейшего совершенствования языка. Дополнение к этому списку будет осуществляться после регистрации в комитете по языку HTML. При проведении исследований к списку также можно добавлять новые значения, при условии, что их имя начинается с комбинации "X-".

Описываемые здесь взаимоотношения определяют связи не просто между анкерами в документах. Они описывают связи между самими документами, как большими независимыми блоками информации, как между объектами. Если некое значение используется для описания взаимоотношения между анкерами, но не между документами, предполагается, что тем не менее указанная семантика применима к упомянутым документам.

В последующем описании A - это документ, инициирующий связи, а B - это документ, на который ссылается атрибут HREF анкера.

Если взаимоотношение между документами в гипертексте называется ациклическим, то это значит, что оно не содержит цепочек связей, которые, начавшись на каком-либо документе, могли бы вновь на него вернуться. Поэтому связи такого типа могут использоваться для формирования ветвящихся структур.

Взаимоотношения между документами

USEINDEX (использование в качестве индекса)

В данной ситуации пользователь, читающий документ A, может вызвать функцию поиска. B - это документ, содержащий связную индексную информацию, используемую такой функцией. Документ A может содержать любое количество индексных связей, что позволяет осуществлять поиск на нескольких условиях индексации в зависимости от решения клиента.

Документ B должен поддерживать работу поиска в соответствии с протоколом доступа.

USEGLOSSARY (использование в качестве словаря)

над словом, которое не находится в пределах анкера).

Документ может иметь любое количество связей со словарем.

ANNOTATION (аннотация)

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

Пример: взаимосвязь между блоком новостей и составляющими его статьями.

REPLY (ответ)

Подобна аннотации, однако условия, чтобы документ B служил дополнением к документу A, не ставится. Документы A и B равноправны. Пример: связь между почтовым сообщением и ответом на него, между заметкой с новостями и откликом на нее.

Ациклическая взаимосвязь.

EMBED (вставка)

Ациклическая взаимосвязь.

PRECEDES (предшествование)

В упорядоченной структуре, сформированной авторами, документу A предшествует документ B, а за документом B всегда следует документ A.

Ациклическая взаимосвязь.

Замечание: Такое взаимоотношение может управлять вспомогательными средствами навигации, формировать материал для печати и т.д. Совместно с понятием "поддокумент" оно может использоваться для создания ветвящейся структуры, такой как книжка для печати, формирующая гипертекстовой документ. Такой документ может содержать только одну такую ветвящуюся структуру.

SUBDOCUMENT (поддокумент)

Согласно иерархии, определенной автором, документ B является составной частью документа A. Ациклическое взаимоотношение.

PRESENT (присутствие)

SEARCH (поиск)

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

SUPERSEDES (обновление)

Документ B является старой версией документа A. Ациклическое взаимоотношение.

Документ B представляет собой список версий документа A. Навстречу этой связи из документа A должна существовать связь документа B с документом A и всеми известными его версиями.

Взаимоотношения с тематикой документов

Эти взаимоотношения выражают семантику не для самих документов, а для затронутых ими тем.

INCLUDES (составная часть)

Ациклическое взаимоотношение

MADE (создание)

Например, личность, чье описание дано в узле A, является автором документа B или отвечает за его содержание. Сведения такого типа могут применяться для целей защиты информации, для посылки сообщений авторам и т.д.

INTERESTED (заинтересованность)

Авторское право

Авторское право для протокола HTTP определяет списки названий для связей и элементов анкеров. Предлагается, что эту обязанность будет выполнять комитет по присвоению номеров Internet или его приемники. Допускается применение незарегистрированных значений в опытном порядке, при условии, что они начинаются с сочетания "X-".

Ссылки

SGML
sgmls анализатор SGML Джонса Кларка (James Clark) <jjc@clark.com>, созданный по материалам анализатора ARCSGML, написанным Чарльзом Голдфабом (Charles F. Goldfarb). Исходный текст программы доступен на FTP сервере ifi.uio.no в каталоге /pub/SGML/SGMLS.
WWW Универсальный локатор ресурсов. RFCxxx. Доступен в настоящее время посредством FTP на компьютере info.cern.ch в каталоге /pub/ietf.

Адреса авторов

в корпорации Convex Computer по адресу 3000 Waterview Parkway Richardson, TX 75083. В настоящее время он работает в Atrium Technology Inc. и не является последним редактором документа.

Tim Berners-Lee
Address: CERN
1211 Geneva 23
Switzerland

Fax: +41(22)767 7155
email: timbl@info.cern.ch

Daniel Connolly
Address: Atrium Technologies, Inc.

Austin, TX 78746
USA
email: connolly@atrium.com

Изменения и дополнения

1.
Разработка рекоммендаций языка HTML проводится рабочей группой IETF - . E-Mail: html-wg@oclc.org.

Новое местонахождение документов: http://www.acl.lanl.gov/HTML_WG/archives.html

2.
В литературе по языку SGML термин "TAGиндикатор". В данном переводе используется слово "метка". Слово "метка" используется также и для именования открытия и закрытия элементов.

3.
В данном переводе для термина "" выбрано слово "анкер". Анкеры применяются в HTML в двух случаях:
  1. Когда нужно сослаться на какой-либо документ или место в текущем документе, т.е. являются "отправной
  2. Когда нужно указать, что на данное место (элемент) в документе можно сослаться. Другими словами - место назначения (для гипертекстовой связи).

4.
В данном переводе под словом "" подразумевается "entity" в языке SGML, а выражение "обращение к объектуEntity reference". В языке HTML все объекты и их имена заранее определены и не существует средств для определения пользователем своих собственных объектов.

5.
В современной спецификации HTML, в элемент HEAD введен еще один элемент - METAmeta information) для документа в целом. Это могут быть: дата последней модификации документа, версия, автор и другая подобная информация. Спецификация HTML указывает на то, что содержимое элемента META может обрабатываться WWW сервером, например, быть выведено по запросу HEAD (протокол HTTP). Точное определение элемента META

6.
Под "узлом" в данном контексте подразумевается "документ". Автор спецификации имел в виду, что каждому гипертекстовому узлу в системе WWW соответствует отдельный документ.

7.
для разделения документа на отдельные части. Кроме этого, многие авторы статей о HTML рекомендуют соблюдать порядок в уровнях заголовков.