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

XHTML

XHTML (eXtensible HyperText Markup Language, расширяемый язык гипертекстовой разметки) — это семейство языков разметки веб-страниц, основанное на HTML, но подчиняющееся более строгим синтаксическим правилам XML. XHTML был разработан Консорциумом Всемирной паутины (W3C) как переходный этап от HTML к XML, с целью создания более чистого, предсказуемого и семантически строгого кода, который мог бы обрабатываться как обычными веб-браузерами, так и XML-парсерами.

История

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

К концу 1990-х годов HTML, особенно в версиях 4.0 и 4.01, стал де-факто стандартом для создания веб-страниц. Однако его синтаксис был крайне нестрогим: браузеры были вынуждены «прощать» разработчикам ошибки (незакрытые теги, неправильную вложенность, отсутствие кавычек у атрибутов). Это приводило к фрагментации веба: одна и та же страница могла отображаться по-разному в разных браузерах. Параллельно набирал силу XML — метаязык для создания других языков разметки, требующий чёткого соблюдения синтаксиса. W3C решил объединить простоту HTML со строгостью XML.

Версии XHTML

Разработка XHTML началась в 1998 году. Первая версия, XHTML 1.0, была рекомендована W3C 26 января 2000 года. Она представляла собой реформулировку HTML 4.01 в соответствии с правилами XML. Фактически, любой корректный документ XHTML 1.0 являлся одновременно и корректным документом XML, и (с некоторыми оговорками) корректным документом HTML 4.01.

Вскоре вышла XHTML 1.1 (рекомендована 31 мая 2001 года). Эта версия была более радикальной: она отказалась от поддержки устаревших атрибутов и элементов (например, атрибутов оформления, таких как bgcolor и align), разделила язык на модули и сделала обязательным использование MIME-типа application/xhtml+xml. Это означало, что документы XHTML 1.1 не могли обрабатываться как обычный HTML, что создавало проблемы совместимости с некоторыми браузерами, особенно с Internet Explorer.

Следующей крупной вехой стал XHTML 2.0, работа над которым началась в 2002 году. Проект был амбициозным, но непрактичным: он порывал с обратной совместимостью с HTML, вводил новые, непривычные элементы и требовал от разработчиков полного переучивания. К середине 2000-х годов, когда разработчики веб-приложений столкнулись с практическими ограничениями XHTML, а сообщество начало активно продвигать HTML5, проект XHTML 2.0 был официально закрыт в 2009 году. W3C признал, что будущее веба — за HTML5.

Синтаксические отличия от HTML

Основное различие между XHTML и классическим HTML заключается в строгости синтаксиса. XHTML требует неукоснительного соблюдения следующих правил:

Типы содержимого (MIME-типы)

Один из ключевых аспектов, определяющих, как браузер обрабатывает XHTML-документ, — это MIME-тип, который сервер отправляет в HTTP-заголовке Content-Type.

Критика и упадок

Несмотря на благие намерения, XHTML столкнулся с рядом серьёзных проблем, которые привели к его упадку:

Наследие и современное использование

Хотя XHTML как отдельная спецификация больше не развивается (последняя версия — XHTML 5, являющаяся частью HTML5), его влияние на веб-разработку значительно. Многие правила, введённые XHTML, стали общепринятыми практиками: использование нижнего регистра для тегов, обязательное закрытие тегов, использование кавычек для атрибутов. Современные редакторы кода и линтеры часто настраиваются на проверку этих правил.

Сам термин «XHTML» сегодня чаще всего используется для обозначения синтаксиса HTML5, соответствующего правилам XML. Такой синтаксис называется XHTML5. Документы XHTML5 могут использовать MIME-тип application/xhtml+xml и обрабатываться как XML, но при этом они поддерживают все новые элементы и API HTML5. Однако на практике подавляющее большинство веб-страниц по-прежнему использует HTML-синтаксис и MIME-тип text/html.

Пример простого XHTML-документа (XHTML 1.0 Strict)

``xhtml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">; <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="ru" lang="ru"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Пример XHTML документа</title> </head> <body> <h1>Заголовок первого уровня</h1> <p>Это абзац текста. <br />А это перенос строки.</p> <ul> <li>Элемент списка 1</li> <li>Элемент списка 2</li> </ul> <p><img src="image.png" alt="Описание изображения" /></p> </body> </html> ``

Источники

  1. W3C Recommendation: XHTML 1.0 The Extensible HyperText Markup Language (Second Edition). 2000.
  2. W3C Recommendation: XHTML 1.1 - Module-based XHTML. 2001.
  3. W3C Working Group Note: XHTML 2.0. 2006 (закрыт в 2009).
  4. «HTML5: The Missing Manual» by Matthew MacDonald. O'Reilly Media, 2011.
  5. «Dive Into HTML5» by Mark Pilgrim. O'Reilly Media, 2010.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →