XHTML, часть 1:
Вероятно, для большинства читателей нашей энциклопедии смысл слов «метаязык» и «разметка» представляется весьма туманным. Поэтому, полагаю, нужно рассказать немного о том, что представляет собой SGML.
В конце 1960-х гг. группа исследователей из компании IBM под руководством Чарльза Гольдфарба взялась за проблему создания универсальной системы для обмена юридическими документами, поставив задачу обеспечить максимальную ее переносимость, то есть независимость от особенностей конкретных аппаратно-программных платформ, сред и устройств вывода информации, как уже существовавших на тот момент, так и тех, которые могли появиться в будущем.
Создатели системы сочли единственно верным решение «отделить мух от котлет» — то есть четко разграничить логическую структуру документа, с одной стороны, и его оформление, с другой.
Суть этого принципа такова. Непосредственно в текст документов внедряются специальные управляющие конструкции — элементы разметки, позволяющие логически структурировать содержание, определить в тексте самостоятельные смысловые единицы (например, заголовки, абзацы и т. п.) Но конструкции разметки абсолютно ничего не говорят о конкретном способе представления данных, то есть об особенностях их отображения или воспроизведения, о внешнем виде форматирования и т.д.
Та самая информация о способе представления хранится не непосредственно в документе, а в отдельном файле — листе стилей. Подобная схема позволяет автоматически обрабатывать одну и ту же информацию различными способами.
Разработчики системы справедливо посчитали, что всякий документ может быть надежно обработан лишь в том случае, если он соответствует некоему единому стандарту. Все прочие документы предполагалось отвергать. Таким образом, потребовалось четко определить допустимую структуру документов того или иного типа. Для этой цели был задействован механизм определений типов документов (DTD — Document Type Definition). DTD, как и лист стилей, представляет собой файл, внешний по отношению к соответствующему документу.
Разделение содержания, представления и проверки на допустимость обеспечивает чрезвычайную гибкость, поскольку как листы стилей, так и DTD могут быть легко модифицированы, в то время как структурная разметка документа может при этом оставаться неизменной.
Язык, соответствующий всем вышеозначенным концепциям и получивший название GML (Generalized Markup Language), был создан в 1969 г.
В 1974 г. Гольдфарб доказал, что допустимость документа можно проверять, не обрабатывая его. Это послужило стимулом к дальнейшей работе над проектом — разработчики значительно расширили свой первоначальный замысел, замахнувшись на статус промышленного стандарта для хранения текстовых документов. В 1986 г. ISO приняла язык GML в качестве международного стандарта, и в его названии закономерно появилась буква «S». Десятью годами позже стандартом ISO стал язык DSSSL (Document Style Semantics and Specification Language — язык для определения семантики и спецификации стиля документов), определяющий правила, в соответствии с которыми создаются листы стилей, использующиеся для обработки SGML-документов.
Мы называем SGML метаязыком в том смысле, что он, де-факто, является «языком для описания языков». SGML, в отличие от языка в классическом понимании, не имеет ограниченного словаря — каждый тип документов (определяемый при помощи DTD) может иметь свою собственную структуру и обладать своим собственным набором допустимых управляющих конструкций.
Таким образом, язык HTML — это не что иное, как один из типов документов SGML. (Если быть совсем корректным и говорить по состоянию на сегодняшний день, то уже не один, а несколько, ибо за полтора десятка лет развития Всемирной паутины появилось множество версий языка HTML, каждая из которых описывается соответствующим DTD.)
HTML, однако, был задуман как достаточно вольный стандарт. Иными словами, страница, созданная с его использованием, должна обрабатываться браузером несмотря ни на что, в любом случае, даже при наличии откровенных ошибок в коде. Причем ошибку браузер может интерпретировать как душе угодно. Надо ли говорить, что впоследствии эта самая потенциальная «свобода творчества» обернулась миной замедленного действия…
Артемий Ломов, веб-разработчик, технический писатель. Автор книг "HTML, CSS, скрипты: практика создания сайтов" и "Apache, Perl, MySQL: практика создания динамических сайтов", колонок "Веб-анатомия по воскресеньям с Артемием Ломовым"
site.nic.ru