Спецификация HTML 3.2

       

HTML как частный случай SGML


Язык HTML 3.2 является реализацией SGML - стандартного обобщенного языка разметки (Standard Generalized Markup Language), отвечающей требованиям международного стандарта ISO 8879. Являясь реализацией SGML, синтаксис документа HTML 3.2 определяется комбинацией и (DTD). Данная спецификация дает определенную интерпретацию для элементов HTML 3.2, а также накладывает новые ограничения на допустимый синтаксис самого языка, что вызвано трудностями его формализации в DTD.

В языке SGML используются довольно сложные правила для границ записей (records). В частности, конец записи, следующий сразу за стартовым тэгом, должен игнорироваться. Например, разметка:

<P>

Текст

эквивалентна:

<P>Текст

Аналогично, должен игнорироваться конец записи, стоящий непосредственно перед завершающим тэгом. Например: Текст

</P>

эквивалентно:

Текст</P>

Если не осуществляется разметка специального текста (например, текста с элементами PRE), в языке HTML последовательность из нескольких следующих друг за другом пробелов считается эквивалентной одному пробелу (в ASCII его десятичный код - 32). Подобные правила оставляют за авторами значительную свободу при внесении изменений в уже размеченный текст. Заметим, что в дальнейшие реализации языка HTML будет включена интерпретация для символа горизонтальной табуляции (в ASCII десятичный код 9), связанная с внесением в ассоциированную таблицу стиля некого правила для табуляций.

Объекты SGML, встречающиеся в контексте PCDATA или в атрибутах CDATA, должны адекватно расшифровываются анализатором языка. Например, &#233; должно заменятся на символ из набора ISO Latin-1 с десятичным кодом 233 (прописная буква e со знаком акцента). Данный символ могло также представить в виде записи, содержащей его название, например &eacute;. Даже сам символ & можно включить в текст, воспользовавшись записью с его названием: &amp;.

Спецификация HTML позволяет не ставить в кавычки атрибуты CDATA, если в них содержатся только буквы (от a до z и от A до Z), дефисы (в ASCII десятичный код 45) и точки (в ASCII десятичный код 46). В общем же случае значение атрибута может быть записано внутри двойных или одинарных кавычек (в ASCII их десятичные коды - 34 и 39 соответственно). Внутри атрибута, помещенного в двойные кавычки, можно ставить символы одинарных кавычек, и наоборот.

Заметим, что некоторые браузеры конечных пользователей требуют использования сокращенной записи для следующих атрибутов: COMPACT, ISMAP, CHECKED, NOWRAP, и NOHREF. Эти программы не воспринимают синтаксис типа COMPACT=COMPACT или ISMAP=ISMAP, хотя такая возможность и допускается в спецификации HTML 3.2 DTD.

Декларации SGML и DTD, используемые в спецификации HTML 3.2, даются в приложениях к данному документу. Остальные основополагающие принципы лексического анализа языка HTML даны в статье Дена Коннолли .



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