Разделы данной спецификации:
Разделы 2 и 3: Введение в HTML 4 Введение описывает место HTML в схеме World Wide Web, предлагает краткий исторический обзор развития HTML, объясняет, что может быть сделано с помощью HTML 4, и предлагает некоторые замечания по созданию документов HTML.Краткий учебник по SGML даёт начальные понятия о соотношении HTML и SGML и общую информацию о том, как читать HTML Document Type Definition/Определение Типа Документа (DTD/ОТД).
Разделы 4 - 24: справочник по HTML 4 Основная часть - это справочник по языку HTML, рассматривающий все элементы и атрибуты языка.Этот документ организован по разделам, а не по грамматике HTML.
Разделы выделены по трём категориям: структуры, представления и интерактивность.
Хотя и нелегко точно разделить конструкции языка HTML на эти три категории, такое структурирование документа по представлению, отражающее опыт HTML Working Group, является более эффективным и удобным.
Справочник по языку содержит следующую информацию:
Какие символы могут появляться в документе HTML.
Базовые типы данных HTML-документов.
Элементы, определяющие структуру HTML-документа: текст, списки, таблицы, гиперссылки и внедрённые объекты, изображения и аплеты.
Элементы, определяющие вид HTML-документа: каскадные таблицы стилей, шрифты, цвета, линии и другие визуальные элементы, фрэймы (кадры) для многооконного представления.
Элементы для интерактивного взаимодействия с пользователем: формы для ввода данных пользователем и скрипты для активных документов.
Формальное SGML-объявление HTML-документа:
SGML-объявление HTML. Три Определения Типа Документа (ОТД): strict, transitional и frameset. Список ссылок-мнемоник.Имена элементов пишутся в верхнем регистре (BODY).
Имена атрибутов пишутся в нижнем регистре (lang, onsubmit).
Помните, что в HTML имена элементов и атрибутов нечувствительны к регистру, это предусмотрено соглашением.
Имена элементов в этом документе выделены верхним регистром и могут быть специально обработаны некоторыми браузерами.
Каждое определение атрибута специфицирует тип своего значения. Если тип позволяет вводить набор значений, то при определении этот набор вводится с разделением элементов знаком (|).
После ввода информации каждое определение атрибута является чувствительным к регистру между ("[]"). Смотри раздел регистр.
Информационные примечания выделены из окружающего текста и могут быть обработаны некоторыми браузерами.
Все примеры, иллюстрирующие не рекомендуемые к использованию элементы и др., помечены так: "НЕ РЕКОМЕНДУЕТСЯ". Такие возражения также включают рекомендации по разрешению проблемы.
Все примеры, иллюстрирующие неверное использование обозначены "НЕВЕРНОЕ ИСПОЛЬЗОВАНИЕ".
Примеры и замечания выделены верхним регистром и могут быть обработаны некоторыми пользовательскими браузерами.
Этот документ создавался в расчёте на читателей двух типов: авторов и разработчиков. Мы надеемся, что эта спецификация станет хорошим подспорьем авторам и разработчикам при написании эффективных, привлекательных и доступных документов без излишней детализации исполнения HTML.
Разработчики найдут здесь всё, что может им понадобиться для создания соответствующих браузеров.
Спецификация может быть использована различными методами:
Читать от начала до конца
Спецификация начинается общим представлением HTML и становится всё более и более детализированной к концу.
На первой странице каждого раздела справочника по языку находится более детализированное содержание этой секции.
Очень признательны Shane McCarron за корректуру этой версии спецификации.
Благодарим всех, кто помогал авторам в работе над спецификацией HTML 4 и присылал свои замечания и предложения.
Очень признательны Web Accessibility Initiative task force (группе WAI HC) за их работу по повышению доступности HTML и T.V. Raman (Adobe) за его предшествующую работу по разработке форм.
Авторы этой спецификации, члены рабочей группы W3C HTML, заслуживают аплодисментов за кропотливый просмотр этого документа, конструктивные комментарии и сложную работу:
John D. Burger (MITRE), Steve Byrne (JavaSoft), Martin J. Dürst (University of Zurich), Daniel Glazman (Electricité de France), Scott Isaacs (Microsoft), Murray Maloney (GRIF), Steven Pemberton (CWI), Robert Pernett (Lotus), Jared Sorensen (Novell), Powell Smith (IBM), Robert Stevahn (HP), Ed Tecot (Microsoft), Jeffrey Veen (HotWired), Mike Wexler (Adobe), Misha Wolf (Reuters), и Lauren Wood (SoftQuad).
Благодарим Dan Connolly (W3C) за огромный труд в качестве редактора, вдумчивое руководство как председателя HTML Working Group.
Благодарим Sally Khudairi (W3C) за прекрасную работу над пресс-релизами.
Благодарим David M. Abrahamson и Roger Price за их тщательную вычитку спецификации и конструктивные комментарии.
Спасибо Jan Kärrman, автору html2ps за большую помощь при создании Postscript-версии спецификации.
В разработке документа принимали участие, от W3C в Sophia-Antipolis, Janet Bertot, Bert Bos, Stephane Boyera, Daniel Dardailler, Yves Lafon, Håkon Lie, Chris Lilley, и Colas Nahaboo (Bull).
Наконец, благодарим Tim Berners-Lee, без которого всё это вообще было бы невозможно.
За информацией об авторских правах обращайтесь, пожалуйста, по адресам:
W3C Intellectual Property Notice, W3C Document Notice и W3C IPR Software Notice.
Каждый доступный на Web ресурс - документ HTML, рисунок, видеоклип, программа и т д. - имеет адрес, который может быть кодирован как Universal Resource Identifier\Универсальный идентификатор ресурса, или "URI".
URI обычно состоят из трёх частей:
Схема именования механизма, используемого для доступа к ресурсу. Имя машины - владельца (хоста) ресурса. Имя самого ресурса, даваемое как путь/path.Рассмотрите URI страницы Technical Reports на сайте W3C:
http://www.w3.org/TRЭтот URI можно прочитать так: это документ, доступный по протоколу HTTP (см. [RFC2616]), находящийся на машине www.w3.org, доступный в пути "/TR". Другие схемы именования, которые Вы можете встретить в документах HTML, включают "mailto" для email (электронной почты) и "ftp" для FTP.
Вот другой URI. Этот ссылается на почтовый ящик пользователя:
...здесь какой-либо текст... Для комментариев высылайте, пожалуйста, email по адресу <A href="mailto:joe@someplace.com">Владимиру Ульянову</A>.Примечание. Большинство читателей, наверное, знакомы с термином "URL" и не знакомы с термином "URI". URL образуют подраздел более общей схемы именования - URI.
Некоторые URI ссылаются на место внутри ресурса. URI этого типа заканчиваются знаком "#", после которого следует идентификатор якоря (называемый идентификатор фрагмента). Например, вот URI, указывающий на закладку с названием section_2:
http://somesite.com/html/top.html#section_2Относительные URI не содержат информацию о схеме именования. Их "путь" обычно ссылается на ресурс на той же машине, где находится и текущий документ. Относительные URI могут содержать компоненты относительного пути (например, ".." - на один уровень выше в иерархии пути), а также закладки.
Относительный URI расширяется до полного URI с использованием базового URI.
К примеру, предположим, что у нас есть базовый URI "http://www.acme.com/support/intro.html".
Относительный URI в следующей разметке для перехода по гиперссылке:
будет расширен до полного URI "http://www.acme.com/support/suppliers.html", а относительный URI для рисунка в следующей разметке:
<IMG src="../icons/logo.gif" alt="logo">будет расширен до полного URI "http://www.acme.com/icons/logo.gif".
В HTML URI используются для:
ссылки на другой документ или ресурс (см. элементы A и LINK); ссылки на внешнюю таблицу стилей или сценарий/скрипт (см. элементы LINK и SCRIPT); включения в страницу рисунка, объекта или аплета (см. элементы IMG, OBJECT, APPLET и INPUT); создания карт изображений (см. элементы MAP и AREA); отправки формы (см. FORM); создания многооконного документа - фрэймов (см. элементы FRAME и IFRAME); цитирования внешней ссылки (см. элементы Q, BLOCKQUOTE, INS и DEL).; ссылки на соглашения по метаданным, описывающим документ (см. элемент HEAD).Прочтите также раздел о типе URI.
World Wide Web (Web)\Всемирная паутина это сеть информационных ресурсов. Web использует три механизма, делающих эти ресурсы доступными максимально возможной аудитории:
Единообразная схема именования размещения ресурсов в Web (напр., URI). Протоколы для доступа к именованным ресурсам Web (напр., HTTP). Гипертекст для быстрой навигации по ресурсам (напр., HTML).Связи этих механизмов станут очевидными после изучения данной спецификации.
HTML был первоначально разработан Tim Berners-Lee как CERN и популяризован браузером Mosaic, разработанным NCSA. В течение 90х гг. он буквально расцвёл в связи с бурным развитием Web. В это время HTML развивался разными путями. Web зависит от соглашений между создателями документов и провайдерами услуг. Это является причиной совместной работы над HTML.
HTML 2.0 (ноябрь 1995, см. [RFC1866]) был создан под эгидой Internet Engineering Task Force (IETF) для кодирования в конце 1994 г.. HTML+ (1993) и HTML 3.0 (1995, см. [HTML30]) представляли собой более "навороченные" версии HTML. Несмотря на то, что консенсус никогда не достижим в дискуссиях о стандартах, эти проекты вели к обобщению большого объёма новых возможностей. Усилия World Wide Web Consortium's HTML Working Group по кодификации практических наработок в 1996 г. выразились в появлении HTML 3.2 (январь 1997, см. [HTML32]). Изменения, сделанные в HTML 3.2 суммированы Приложении A.
Большинство было согласно с тем, что документы HTML должны хорошо работать на различных платформах и в различных браузерах. Достижение универсальности уменьшает затраты провайдеров, поскольку они должны создавать документы одной версии языка. Если это не будет сделано, увеличится риск того, что Web будет развиваться во множестве несовместимых форматов, уменьшая коммерческий потенциал Web для всех участников.
Каждая версия HTML пытается добиться большего согласия среди участников этой игры так, чтобы затраты, сделанные провайдерами информации, не оказались бесполезными и чтобы их документы не стали через короткое время "нечитабельными".
HTML был разработан в расчёте на то, что все виды устройств смогут получить информацию на Web: PC графическими дисплеями различного разрешения и глубины цвета, сотовыми телефонами, переносными устройствами, разговорными устройствами, компьютерами с высокой и низкой тактовой частотой и так далее.
Для публикации информации и её глобального распространения необходим универсальный язык типа основного всеобщего языка, который потенциально понятен всем компьютерам. Таким языком, используемым в World Wide Web, является HTML (от HyperText Markup Language/Язык Гипертекстовой Разметки).
HTML даёт авторам средства для того, чтобы:
публиковать online-документы с оглавлением, текстом, таблицами, списками, фотографиями и т.д.; запрашивать online-информацию, переходя по гиперссылкам, нажимая кнопки; создавать формы для взаимодействия с удалённым сервисом, для поиска информации, создания архивов, продажи товаров и т д.; включать таблицы данных, видео и аудиоклипы и другие приложения прямо в документы.Эта версия HTML была разработана при помощи экспертов в вопросах интернационализации так, чтобы документы могли быть написаны на любом языке и переданы в любую точку планеты. Это было сделано с участием [RFC2070], тех, кто имеет отношение к интернационализации HTML.
Важным этапом стало принятие стандарта ISO/IEC: 10646 (см. [ISO10646]) как набора символов для документа HTML. Это самый обобщённый мировой стандарт, содержащий решения по вопросам представления международных символов, направления текста, пунктуации и других вопросов языка.
В данный момент HTML предоставляет поддержку различных человеческих языков в документах. Это позволяет применять качественную индексацию документы для машин поиска, высококачественную типографскую печать, лучшую конверсию текст-речь и т.д.
Поскольку сообщество Web разрастается, и его члены различны по своим возможностям и уровню, решающим становится соответствие базовых технологий специфическим задачам Web. HTML разработан так, чтобы сделать страницы Web более доступными людям с физическими недостатками. Развитие HTML 4, вызванное проблемой обеспечения доступности, включает в себя:
большее разделение структуры и представления документа продвижением таблиц стилей вместо элементов и атрибутов представления HTML; доработка форм, добавление символов быстрого доступа, возможность семантически группировать элементы управления (ЭУ) и опции SELECT, активные лэйблы; возможность разметки текстового описания включённых объектов (элементом OBJECT); новый механизм клиентских карт изображений (элемент MAP), позволяющий авторам интегрировать изображения и гиперссылки; требование установки альтернативного текста для изображений для элемента IMG и карт изображений для элемента AREA; поддержка атрибутов title и lang для всех элементов; поддержка элементов ABBR и ACRONYM; широкий круг целевых носителей информации (tty, по Брайлю и т.п.) для использования с таблицами стилей; доработанные таблицы, заголовки, группы столбцов и механизмы, облегчающие невизуальное восприятие; полное описание таблиц, изображений фрэймов и т.д.Авторы, разрабатывающие страницы с учётом их доступности, не только заслуживают благодарности, но получат также и другое преимущество: хорошо проработанные документы HTML с разделением структуры и представления в будущем легче будут адаптироваться к новым технологиям.
Примечание. О дизайне доступных документов HTML см. [WAI].
Новая модель таблиц HTML базируется на [RFC1942]. Авторы имеют теперь больший контроль над структурой и внешним видом (напр., группы столбцов). Возможность рекомендовать ширину столбцов даёт возможность ПА отображать таблицы частями (по мере загрузки), а не дожидаться получения всей таблицы целиком.
Примечание. Некоторые утилиты для создания документов HTML широко используют таблицы для форматирования, что может легко привести к проблемам с доступностью документов.
HTML предлагает стандартный механизм внедрения объектов приложений в документы HTML. Элемент OBJECT (вместе со своими более специализированными предшественниками IMG и APPLET) предоставляет механизм включения в документ изображений, видео, звука, математических выражений, специализированных приложений и других объектов. Авторам предлагается также устанавливать иерархию альтернативного представления для ПА, не поддерживающих какие-либо виды специального представления.
Таблицы стилей упрощают разметку HTML и снимают значительную долю нагрузки на HTML в вопросах представления документов. Они дают и авторам, и ПА контроль над представлением документов - шрифты, выравнивание, цвет и т.п.
Стилевая информация может быть определена для конкретного элемента или для группы элементов. Стилевая информация может быть установлена в документе HTML или во внешней таблице стилей.
Механизм ассоциации таблицы стилей с документом не зависит от языка таблицы стилей.
До появления таблиц стилей авторы имели ограниченный контроль над представлением документа. HTML 3.2 включал несколько атрибутов и элементов, позволявших управлять выравниванием, размером шрифта и цветом текста. Авторы также использовали таблицы и изображения как средство форматирования вывода страниц.
Относительно много времени занимает обновление пользователями своих браузеров, и это означает, что постепенно новые возможности начнут широко использоваться. Одновременно, поскольку таблицы стилей предлагают более совершенный механизм представления, World Wide Web Consortium осуществляет постепенный отход от многих элементов и атрибутов представления документов HTML. В этой спецификации элементы и атрибуты "риска" отмечены как "не рекомендуемые". Они сопровождаются примерами того, как добиться того же эффекта применением других элементов или таблиц стилей.
С помощью сценариев авторы могут создавать динамические Web-страницы (напр., "умные формы", которые реагируют на их заполнение пользователем) и использовать HTML как средство создания сетевых приложений.
Механизм включения скриптов в документ HTML не зависит от языка скриптов.
Иногда авторам необходимо облегчить пользователям печать сложных документов. Если документы являются частью более объёмной работы, соотношения между ними могут быть описаны с использованием элемента HTML LINK или W3C's Resource Description Framework (RDF) (см. [RDF10]).
HTML имеет корни в SGML, который всегда был языком спецификации структурной разметки. Поскольку HTML уже достаточно развился, всё больше его элементов представления и атрибутов заменяются другими механизмами, в особенности - таблицы стилей. Опыт показывает, что отделение структуры документа от его представления уменьшает стоимость обслуживания на основе широкого спектра платформ, носителей и т.д. и облегчает обновление документов.
Чтобы сделать Web доступным каждому, особенно людям с физическими недостатками, авторы должны учитывать, как их документы будут выглядеть на различных платформах: речевых браузерах, устройств чтения по системе Брайля и т.п. Мы не рекомендуем авторам ограничивать себя творчески, необходимо только предусмотреть альтернативные возможности представления документа. HTML предоставляет несколько механизмов для этого (напр., атрибуты alt, accesskey и т.п.)
В то же время, авторы должны всегда помнить, что их документы доступны для широкой аудитории, для компьютеров разной конфигурации. Для того, чтобы документы интерпретировались корректно, авторы должны включать в свои страницы информацию о языке и направлении текста, о кодировке и других объектах интернационализации.
Будьте аккуратны при создании таблиц и использовании новых возможностей HTML 4.
Авторы могут помочь ПА отображать документы быстрее.
Авторы могут узнать, как создавать таблицы для отображения частями (см. элемент TABLE).
Разработчики должны прочесть заметки о таблицах в приложении об алгоритме вывода частями.
SGML - это система определения языков разметки. Авторы размечают
свои документы, вводя структурную, представительную и семантическую информацию параллельно с основным содержимым.
HTML - это один из языков разметки. Вот пример документа HTML:
Документ HTML состоит из раздела-шапки (здесь - между <HEAD> и </HEAD>) и тела (здесь - между <BODY> и </BODY>). Название документа содержится в шапке (наряду с другой информацией о документе), а содержимое документа находится в его теле/ body. Тело в этом примере состоит из одного параграфа, помеченного <P>.
Каждый язык разметки, определённый в SGML, называется SGML приложением. Приложение SGML обычно характеризуется:
Объявлением SGML. Объявление SGML определяет, какие символы и ограничители могут появляться в приложении. Определением типа документов (ОТД). ОТД определяет синтаксис конструкций разметки. ОТД может включать дополнительные определения, такие как символьные ссылки-мнемоники. Спецификация, описывающая семантику, относится к разметке. Эта спецификация также даёт ограничения синтаксиса, которые не могут быть выражены внутри ОТД. Объектами документа, содержащими данные (содержимое) и разметку. Каждый объект содержит ссылку на ОТД, чтобы иметь возможность быть интерпретированным.Эта спецификация включает объявление 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). Знак одиночной кавычки может быть включена в значение атрибута, если это значение ограничено знаком двойной кавычки, и наоборот. Авторы могут также использовать цифровые ссылки-мнемоники для представления двойной (") и одинарной (') кавычек. Для двойных кавычек можно использовать также символьную ссылку-мнемонику ".
В некоторых случаях авторы могут устанавливать значение атрибута без использования кавычек. Значение атрибута может содержать только (a-z и A-Z), цифры (0-9), дефисы (ASCII десятеричная 45), точку (ASCII десятеричная 46), символ подчёркивания (ASCII десятеричная 95) и двоеточие (ASCII десятеричная 58).
Мы рекомендуем использовать знак кавычек даже тогда, когда можно обойтись без него..
Названия атрибутов всегда нечувствительны к регистру.
Значения атрибутов вообще нечувствительны к регистру В определении каждого атрибута в справочнике указано, является ли его значение нечувствительным к регистру.
Все атрибуты, определённые в этой спецификации, перечислены индексе атрибутов.
Ссылки-мнемоники это цифровые или символьные имена символов, которые могут быть включены в документ HTML. Они употребляются как ссылки на редко используемые или затруднительные для воспроизведения авторскими утилитами символы. Вы встретите такие ссылки-мнемоники в этом документе повсюду, они начинаются знаком "&" и заканчиваются точкой с запятой (;). Вот некоторые распространённые сочетания:
"<" - знак < ">" - знак >""" - знак " "å" (десятеричная) буква "a" с маленьким кружком наверху "И" (десятеричная) кириллическая "И"."水" (шестнадцатеричная) китайский "водяной" символ.Мы детально обсуждаем ссылки-мнемоники HTML позже в разделе набор символов документа HTML. В этой спецификации есть также список символьных ссылок, которые могут употребляться в документах HTML 4.
Комментарии HTML имеют следующий синтаксис:
<!-- это комментарий --> <!-- и это тоже комментарий, занимающий более одной строки -->Не допускаются пробелы между открывающим ограничителем объявления разметки ("<!") и открывающим ограничителем комментария ("--"), но разрешаются между закрывающим ограничителем комментария ("--") и закрывающим ограничителем объявления разметки (">"). Обычная ошибка - включение внутрь комментария строки ("---"). Авторы должны исключить использование внутри комментариев двух или более смежных дефисов.
Информация комментариев не имеет специального значения (напр., ссылки-мнемоники не интерпретируются как таковые).
Обратите внимание, что комментарии это разметка.
Следующие разделы посвящены конструкциям SGML, используемым в HTML.
В приложении описаны некоторые возможности SGML, которые не поддерживаются широко утилитами HTML и пользовательскими агентами (ПА), и использование которых должно быть исключено.
Комментарии в ОТД могут быть одно- или многострочными. Комментарии в ОТД это текст, ограниченный парами знаков "--", например:
<!ELEMENT PARAM - O EMPTY -- именованное значение свойства --> Данный комментарий "именованное значение свойства" поясняет использование типа элемента PARAM. Комментарии в ОТД носят исключительно информативный характер.ОТД HTML начинается серией определений объектов-параметров. Определение объекта-параметра определяет макрос особого типа, на который можно ссылаться и который может быть развёрнут где-либо в ОТД. Эти макросы могут не появляться в самом документе HTML, а только в ОТД. Макросы других типов, называемые ссылки-мнемоники, могут быть использованы в тексте документа HTML или внутри значений атрибутов.
Если на объект-параметр ссылаются по имени из ОТД, он разворачивается в строку.
Определение объекта-параметра начинается ключевым словом <!ENTITY % с последующим именем объекта-параметра, строки в кавычках, в которую объект-параметр разворачивается, и конечного закрывающего >. Появления объектов-параметров в ОТД начинаются со знака "%", затем имени объекта-параметра и необязательного заключительного знака ";".
Вот определение строки, в которую разворачивается объект-параметр "%fontstyle;".
<!ENTITY % fontstyle "TT | I | B | BIG | SMALL">Строка, в которую разворачивается объект-параметр, может содержать имена других объектов-параметров. Эти имена разворачиваются рекурсивно. В следующем примере, объект-параметр "%inline;" определён с включением объектов-параметров "%fontstyle;", "%phrase;", "%special;" и "%formctrl;".
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">Вы можете заметить далее, что два объекта-параметра ОТД часто появляются в ОТД HTML: "%block;" и "%inline;". Они используются, если модель содержимого включает соответственно элементы уровня блока/block-level и инлайн/ inline (определены в разделе глобальная структура документа HTML).
Как правило, ОТД HTML состоит из объявления типа элемента и его атрибута. Ключевое слово<!ELEMENT открывает объявление, а символ > закрывает. Между ними определяются:
имя элемента; обязательно ли указывать теги элемента. Два дефиса после имени элемента означают, что начальный и конечный теги должны присутствовать. Один дефис и буква "O" означают, что конечный тег может отсутствовать. Две буквы "O" означают, что и начальный, и конечный теги могут отсутствовать; содержимое элемента, если есть. Допустимое для данного элемента содержимое называется моделью содержимого. Типы элементов, которые разработаны так, чтобы не иметь содержимого, называются пустыми элементами. Модель содержимого для таких типов элементов объявляется ключевым словом "EMPTY".В этом примере:
<!ELEMENT UL - - (LI)+> объявляемый тип элемента - UL; два дефиса означают, что оба тега, начальный <UL> и конечный </UL>, для этого типа элементов должны присутствовать; Модель содержимого этого типа элементов объявлена как "не менее одного элемента LI". Ниже объясняется, как специфицировать модель содержимого.В этом примере иллюстрируется объявление пустого типа элемента:
<!ELEMENT IMG - O EMPTY> объявляется тип элемента IMG; дефис и последующая "O" означают, что конечный тег может быть опущен, но, в сочетании с моделью содержимого "EMPTY", это значение усиливается: конечный тег должен отсутствовать; ключевое слово "EMPTY" означает, что объект этого типа обязан не иметь содержимого.Ключевое слово <!ATTLIST открывает объявление атрибутов, которые могут быть приняты элементом. Следом идёт имя элемента, список определений атрибутов и закрывающий >.
Каждое определение атрибута состоит из трёх частей:
В этом примере атрибут 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}.
Каждое объявление элемента или атрибута в этой спецификации сопровождается соответствующим фрагментом определения типа документа. Мы решили включать фрагменты ОТД в спецификацию вместо того, чтобы использовать более подходящие, но и более длинные и менее точные способы описания свойств элемента.
Этот учебник должен помочь читателям, не знакомым с SGML, разобраться в ОТД и понять технические детали этой спецификации HTML.
Содержание
Введение в SGML Конструкции SGML, используемые в HTML Элементы Атрибуты Ссылки-мнемоники Комментарии Как читать Определение Типа Данных (ОТД) HTML Комментарии в ОТД Определение объектов-параметров Объявление элементов Определение модели содержимого Объявление атрибутов Объекты ОТД в определении атрибутов Булевы атрибутыЭтот раздел посвящён SGML и его взаимосвязям с HTML. Полное обсуждение SGML находится в стандарте (см. [ISO8879]).