Всю красоту XML можно понять только при сравнении его с HTML. Формализованный в RFC 1866 в 1995 году (хотя, естественно, использоваться он начал раньше), HTML является наиболее популярным языком разметки во всем мире. Термин «разметка» применительно к документу означает обычно все, что не относится к его информационному наполнению. Например, когда эта статья готовилась к печати, редакторы Network Magazine размечали ее (с помощью старой доброй «аналоговой» красной авторучки), вставляя замечания для автора и инструкции для верстальщиков о том, как следует форматировать различные элементы.
Наверняка всем пользователям Web приходилось видеть файл HTML в его исходном виде, где теги форматирования перемешаны с обычным текстом. (Возможно, некоторые из вас вспомнят в этой связи о WordStar, где также использовались в основном парные теги. В дни текстовых мониторов документ мог быть запросто испорчен, когда, вставив открывающий тег для перехода к жирному шрифту или подчеркиванию, вы потом забывали выключить его посредством вставки закрывающего тега в конце слова.)
Главной особенностью разметки HTML является, конечно, возможность вставки ссылок на внешние документы или на внутренние разделы того же самого документа. Стоит заметить, что, хотя HTML чаще всего предоставляется серверами по HTTP, он также может использоваться на CD-ROM или в локальной сети. Универсальные языки разметки не привязаны к какому-либо конкретному транспорту.
HTML преуспел не только как адаптируемый язык разметки, но и в качестве промежуточного программного обеспечения (см. статью Д. Эйнджела «Промежуточное программное обеспечение» в этом номере LAN). Благодаря своей дешевизне и распространенности браузеры Web представляют собой отличных клиентов; при посредничестве HTML они могут общаться с самыми разнообразными серверами.
Однако HTML столкнулся с определенными трудностями. Его ограниченные возможности форматирования пытались преодолеть с помощью CSS, инициативы TrueDoc от Bitstream и конечно же множества специфических расширений для браузера; а его ограниченные возможности в качестве промежуточного ПО — с помощью Java, ActiveX и т. п. Тем не менее все это не устраняет его фундаментальные недостатки.