В результате специалисты W3C избрали другой путь, более продуктивный и перспективный. Вместо создания новой версии языка HTML они предложили средство, с помощью которого разработчики могли бы определять и описывать собственные языки гипертекстовой разметки. Этим средством является метаязык XML (eXtensible Markup Language – расширяемый язык разметки), то есть специальный язык, служащий для определения и задания других языков гипертекстовой разметки. Термин «мета» как раз и означает его функцию: метаязыки – это языки, служащие для описания и определения новых языков.
Использование метаязыков в определении языков гипертекстовой разметки отнюдь не инновация W3C. Своим появлением на свет язык HTML обязан метаязыку SGML (Standard Generalized Markup Language – стандартный обобщенный язык разметки). В приложении D «HTML 4.01 DTD» на сайте W3C (www.w3.org) все конструкции языка HTML 4.01 описаны с помощью набора определений типа документа (DTD – Document Type Definition). Это набор специальных конструкций метаязыка SGML, описывающих язык HTML 4.01. На следующем этапе развития языка гипертекстовой разметки специалисты W3C создали метаязык XML и с помощью набора XML DTD – язык XHTML, наследующий возможности HTML 4.01, но с некоторыми уточнениями и усовершенствованиями. Язык XHTML обеспечивает поддержку всех средств HTML 4.01, применяя более жесткие правила XML DTD.
Почему же специалисты W3C разработали новый метаязык XML вместо использования SGML? Причина состоит в сложности SGML: насколько он универсален и всемогущ, настолько и сложен в понимании. Поэтому он непригоден для широкого использования разработчиками специализированных версий языков гипертекстовой разметки. Язык XML для определения новых языков использует отдельные (но не все) элементы SGML, кроме того, в нем присутствуют упрощенные элементы SGML, более подходящие для широкого применения.
В настоящий момент имеется три типа DTD, используемых для определения языка XHTML.
1. Первый тип соответствует строгому применению правил XHTML DTD в данном документе. При этом запрещается использование всех тегов и атрибутов HTML, признанных устаревшими по разным причинам, например запрещены все атрибуты форматирования текста по причине их замены таблицами CSS. К числу последних относятся тег и атрибут выравнивания align. Однако такое ограничение для многих просто неприемлемо, поскольку использование элементов этого типа стало для разработчиков привычкой, выработанной годами работы над HTML-документами.
2. Второй тип XHTML DTD называется переходным и включает в себя все нежелательные элементы HTML, чтобы разработчики веб-страниц могли постепенно перейти от старого к новому. Такой подход соответствует тенденциям в развитии браузеров, которые не спешат расставаться со старыми добрыми средствами создания веб-страниц с помощью пусть и устаревших, но привычных и надежных тегов HTML.
3. Третий тип DTD определяет работу с фреймами, в остальном он соответствует переходным XHTML DTD.
В настоящее время актуальна версия 1.0 языка XHTML, но уже на подходе версия 1.1.