Открыть сервисСервис

XHTML 2.0

XHTML 2.0 — это язык разметки веб-страниц, разработанный Консорциумом Всемирной паутины (W3C) как преемник XHTML 1.1 и HTML 4.01. Проект был направлен на создание строгой, модульной и семантически чистой версии HTML, основанной на XML, но отказавшейся от обратной совместимости с существующими веб-стандартами. Работа над спецификацией велась с 2002 по 2009 год, после чего W3C прекратил разработку в пользу HTML5, который сохранил обратную совместимость и получил широкое распространение.

История

Предпосылки создания

В начале 2000-х годов веб-сообщество столкнулось с рядом проблем, связанных с развитием HTML. HTML 4.01, выпущенный в 1999 году, имел ряд недостатков, включая смешение структуры и представления (через атрибуты вроде bgcolor и font), а также нестрогий синтаксис, который допускал пропуск закрывающих тегов и нечувствительность к регистру. XHTML 1.0, стандартизированный в 2000 году, был попыткой «перевести» HTML 4.01 в XML, но он сохранял обратную совместимость с HTML-парсерами, что порождало путаницу. XHTML 1.1 (2001) уже был чисто XML-документом, но его возможности оставались ограниченными.

Разработка (2002–2006)

В 2002 году W3C сформировал рабочую группу XHTML 2.0. Целью было создание языка, который бы полностью отказался от наследия HTML и использовал бы XML как базовую технологию. Основные принципы включали:

  • Строгость: все элементы должны быть закрыты, атрибуты — в кавычках, регистр — только нижний.
  • Семантика: отказ от элементов, отвечающих за внешний вид (например, b, i, font), в пользу стилей CSS.
  • Модульность: возможность комбинировать модули XHTML с другими XML-языками (MathML, SVG).
  • Расширяемость: введение новых элементов и атрибутов для улучшения семантики.

Первая публичная рабочая черновик (Working Draft) был опубликован в августе 2002 года. В 2006 году вышла версия 2.0 Working Draft, которая уже содержала большинство ключевых изменений.

Прекращение разработки (2009)

Несмотря на амбициозные планы, XHTML 2.0 столкнулся с рядом проблем:

  • Отсутствие обратной совместимости: браузеры, поддерживающие HTML, не могли корректно отображать XHTML 2.0 без специальной обработки.
  • Конкуренция со стороны HTML5: в 2004 году WHATWG (Web Hypertext Application Technology Working Group) начал разработку HTML5, который, напротив, сохранял обратную совместимость и вводил новые возможности для веб-приложений.
  • Низкая поддержка браузерами: ни один крупный браузер (Internet Explorer, Firefox, Chrome) не реализовал XHTML 2.0 в полном объёме.

В 2009 году W3C официально объявил, что не будет выпускать XHTML 2.0 как рекомендацию, и закрыл рабочую группу. Вместо этого консорциум сосредоточился на разработке HTML5, который был опубликован как рекомендация в 2014 году.

Отличия от XHTML 1.x и HTML

Синтаксис и структура

XHTML 2.0 вводил ряд изменений, которые делали его несовместимым с предыдущими версиями:

  • Отказ от атрибутов id и name: для идентификации элементов использовался только атрибут id, а name был удалён.
  • Новый элемент h: вместо шести уровней заголовков (h1h6) предлагался единый элемент h, уровень которого задавался атрибутом level (например, <h level="1">).
  • Удаление элементов представления: b, i, big, small, hr, br и другие были исключены. Вместо них рекомендовалось использовать CSS.
  • Новые элементы для форм: вводились элементы input type="datetime", input type="number", select с атрибутом multiple и другие, которые позже были реализованы в HTML5.
  • Модульность: XHTML 2.0 состоял из модулей, которые можно было комбинировать. Например, модуль «Структура» (Structure) определял базовые элементы (html, head, body), а модуль «Формы» (Forms) — элементы для ввода данных.

Обработка ошибок

В отличие от HTML, где браузеры часто «прощали» ошибки (например, пропущенные закрывающие теги), XHTML 2.0 требовал строгого соблюдения XML-синтаксиса. Любая ошибка (например, незакрытый тег) приводила к тому, что документ не отображался, а браузер выдавал сообщение об ошибке. Это делало XHTML 2.0 менее удобным для начинающих разработчиков, но повышало надёжность парсинга.

Ключевые элементы и атрибуты

Элемент h

Вместо h1h6 использовался единый элемент h с атрибутом level: ``xml <h level="1">Заголовок первого уровня</h> <h level="2">Заголовок второго уровня</h> `` Это упрощало стилизацию, но требовало изменения существующих стилей CSS.

Элемент nl

Для списков определений (dl, dt, dd) вводился элемент nl (navigation list), который также мог использоваться для навигации: ``xml <nl> <label>Навигация</label> <li><a href="/">Главная</a></li> <li><a href="/about">О нас</a></li> </nl> ``

Атрибут src для object

В XHTML 2.0 элемент object использовался для встраивания изображений, мультимедиа и других объектов. Атрибут src указывал на источник: ``xml <object src="image.png" type="image/png"/> ``

Формы

Формы в XHTML 2.0 были переработаны:

  • Элемент input получил новые типы: datetime, number, range, email, url.
  • Элемент select поддерживал множественный выбор через атрибут multiple.
  • Вводился элемент keygen для генерации ключей шифрования.

Применение и наследие

Практическое использование

XHTML 2.0 никогда не был реализован в промышленных масштабах. Несколько экспериментальных проектов, таких как Mozilla XHTML 2.0 Test Suite, показали, что браузеры могут обрабатывать XHTML 2.0, но только при условии, что документ обслуживается с MIME-типом application/xhtml+xml. Однако из-за отсутствия обратной совместимости и поддержки со стороны Internet Explorer (который доминировал на рынке в 2000-х годах), XHTML 2.0 остался в основном теоретической разработкой.

Влияние на HTML5

Многие идеи XHTML 2.0 были заимствованы HTML5:

  • Новые типы input: datetime, number, email, url и другие.
  • Семантические элементы: article, section, nav, header, footer — хотя они не являются прямым аналогом XHTML 2.0, концепция семантической разметки была развита.
  • Модульность: HTML5 также поддерживает модульность через MathML и SVG, но в менее строгой форме.
  • Обработка ошибок: HTML5 ввёл единый алгоритм парсинга, который стандартизировал то, как браузеры обрабатывают ошибки, что сделало HTML более надёжным без жёстких требований XHTML.

Критика

XHTML 2.0 подвергался критике за:

  • Излишнюю сложность: отказ от простых элементов (например, b и i) затруднял миграцию с HTML.
  • Отсутствие обратной совместимости: веб-сайты, написанные на XHTML 2.0, не могли быть открыты в старых браузерах.
  • Нереалистичные требования: требование строгого XML-синтаксиса делало разработку более трудоёмкой, особенно для динамических страниц, генерируемых серверными скриптами.

Интересные факты

  • Последняя рабочая черновик XHTML 2.0 была опубликована 26 июля 2006 года. После этого рабочая группа выпустила несколько неофициальных обновлений, но официального релиза не последовало.
  • В 2007 году W3C объявил, что XHTML 2.0 не будет развиваться как отдельный стандарт, а вместо этого будет интегрирован в HTML5.
  • Некоторые элементы XHTML 2.0, такие как h с атрибутом level, были предложены в черновиках HTML5, но не вошли в финальную версию.

Источники

  • W3C. «XHTML 2.0 Working Draft» (2006). — Официальный документ рабочей группы.
  • W3C. «XHTML 2.0: Why It Failed» (2009). — Анализ причин прекращения разработки.
  • WHATWG. «HTML5: A Vocabulary and Associated APIs for HTML and XHTML» (2014). — Спецификация HTML5.
  • Бергерс, А. «The Evolution of the Web: From HTML to XHTML to HTML5» (2010). — Книга по истории веб-стандартов.
  • Статья «XHTML 2.0» в Википедии (русскоязычная версия). — Обзорная информация.