Что такое XHTML? Ошибки в XHTML и отличия XHTML от HTML. В чем разница между HTML и XHTML

На заметку, чтобы не забыть о различии между HTML и XHTML .

И так, HTML и XHTML - это особые форматы разметки веб-страниц которые “понимает” браузер.

Далее немного теории о HTML и XHTML и список некоторых различий между ними…

HTML (от англ. HyperText Markup Language - “язык разметки гипертекста”) - стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц создаются при помощи языка HTML (или XHTML). Язык HTML интерпретируется браузером и отображается в виде документа, в удобной для человека форме.
HTML является приложением («частным случаем») SGML (стандартного обобщённого языка разметки) и соответствует международному стандарту ISO 8879. XHTML же является приложением XML.

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

Каждый HTML-документ, отвечающий спецификации HTML какой-либо версии, должен начинаться со строки объявления версии HTML .
Если эта строка не указана, то добиться корректного отображения документа в браузере становится труднее.

XHTML (англ. Extensible Hypertext Markup Language - Расширяемый язык разметки гипертекста) - язык разметки веб-страниц, по возможностям сопоставимый с HTML, созданный на базе XML. Как и HTML, XHTML соответствует спецификации SGML, поскольку XML является её подмножеством. Вариант XHTML 1.1 одобрен в качестве Рекомендации Консорциума Всемирной паутины (W3C) 31 мая 2001 года.

Валидным (т. е. отвечающим всем правилам) XHTML-документом считается документ, удовлетворяющий технической спецификации. В идеале, все браузеры должны следовать веб-стандартам и, в соответствии с ними, валидные документы должны отображаться во всех браузерах на всех платформах. Валидация XHTML-документа рекомендована даже несмотря на то, что она не гарантирует кросс-браузерности. Документ может быть проверен на соответствие спецификации с помощью онлайновой cлужбы валидации разметки W3C. Валидация обнаружит и разъяснит ошибки в XHTML-разметке.

Различия между XHTML и HTML
- Все элементы должны быть закрыты. Теги, которые не имеют закрывающего тега
(например, или
) должны иметь на конце / (например,
).

Булевы атрибуты записываются в развёрнутой форме. Например, следует писать selected="selected"> или .

Имена тегов и атрибутов должны быть записаны строчными буквами (например, alt="" /> вместо ).

XHTML гораздо строже относится к ошибкам в коде; < и & везде, даже в URL,
должны замещаться < и & соответственно. По рекомендации W3C браузеры,
встретив ошибку в XHTML, должны сообщить о ней и не обрабатывать документ. Для
HTML браузеры должны были попытаться понять, что хотел сказать автор.
- Кодировкой по умолчанию является UTF-8 (в отличие от HTML, где кодировкой по
умолчанию является ISO 8859-1).

Для XHTML страниц рекомендуется задавать MIME-тип - application/xhtml+xml, но
это не является обязательным, более того - браузер Internet Explorer 8 и младшие
версии, не смогут обрабатывать страницу, поэтому с XHTML 1.0 традиционно
используется MIME-тип для HTML - text/html.

Также стандарт рекомендует указание перед
DTD, но это не обязательно, более того - браузер Internet Explorer воспринимает
такое указание (как и любой другой текст перед ), как признак того,
что данную страницу необходимо отображать в режиме обратной совместимости, а не
согласно стандарту. Существует три типа документов XHTML: strict, transitional и
frameset. Наиболее употребительной и универсальной из версий XHTML является
переходная (англ. transitional), поскольку она позволяет использовать iframe
(включение содержимого одной веб-страницы в другую) и атрибут target у ссылок
(для указания того, например, что ссылке необходимо открываться в новом окне).
Фреймовая версия (англ. frameset) представляет собой расширенный вариант
transitional, добавляя к нему, как следует из названия, возможность установки
frameset вместо body. DTD строгой версии XHTML (англ. strict) не содержит многих
тегов и атрибутов, описанных в DTD transitional, и признанных устаревшими.

Спасибо http://ru.wikipedia.org/

Развитие HTML в определенном смысле зашло в тупик - новые теги уже не нужны, поскольку хватает существующих, к тому же акцент разработки веб-страниц сместился на стили, которые расширяют возможности по оформлению документов. Естественно, CSS никак не подменяет HTML, но зато позволяет использовать ограниченный набор тегов, а вид элементов, их положение и различные параметры, задавать через стили.

Определенным ограничением HTML является и то, что он относится к формальным языкам, в том смысле, что теги и их иерархическая структура жестко описаны в спецификации. Поэтому популярность набирает XML, с помощью которого можно создавать собственные теги и формировать их структуру. Разница между HTML и XML состоит не только в тегах, но и правилах написания кода. Браузер при работе с HTML «закрывает глаза» на разные мелкие огрехи и недочеты в структуре или тому, что не корректно указан атрибут. С XML такие фокусы не проходят, поэтому браузер выдаст ошибку о том, что документ неверно сформирован.

Чтобы научить разработчиков «правильному» мышлению, изменить их стиль написания кода, а также сократить разрыв между HTML и XML, и был разработан XHTML, как промежуточный этап между ними.

XHTML (EXtensible HyperText Markup Language, расширяемый язык разметки гипертекста) предназначен для замены HTML и считается его более строгой версией. Вообще, W3C определяет XHTML как последнюю версию HTML, которая постепенно его вытеснит. Так ли это будет обстоять на самом деле, покажет только время.

Если рассуждать о некотором идеальном коде веб-страницы, то его можно сравнить с программой, которая не будет скомпилирована до тех пор, пока все ошибки не исправлены. Браузер выступает в роли компилятора и не отображает документ, если он не соответствует спецификации. XHTML, сохраняя все особенности HTML, вносит более строгие правила создания страниц, чтобы приблизиться к «идеальному» коду. Это позволяет делать сайты независимыми от устройства отображения и браузера. Иными словами, сайт будет корректно показываться во всех современных браузерах и платформах вроде компьютеров, смартфонов, КПК, нетбуках и др.

На деле все обстоит более приземленно. Разработчики браузеров не могут позволить себе, чтобы их детище работало только с «правильным» кодом. А все из-за того, что большая часть сайтов в мире просто не будет отображаться в таком браузере. Виноваты в таком положении вещей и разработчики и пользователи. Первые не обеспечили должную поддержку спецификации в своих браузерах, а вторые не потрудились ей следовать.

По этим причинам XHTML 1.x является всего лишь подобием HTML, но с более строгим синтаксисом, а не тем перспективным языком разметки, на который обязательно стоит переходить из-за его уникальных возможностей.

XHTML Расшифровывается как ExtensibleHypertext Markup Language и на русском — Расширяемый язык разметки гипертекста. Обратите внимание не расширенный, а расширяемый. Это значит, что данный язык

Пополняется (расширяется) до сих пор. Так что такое XHTML ? Основным отличием XHTML от того же HTML является способ обработки документа (интернет-странички). Стоит ввести еще одно определение. Парсер - программа или часть программы, которая выполняет синтаксический анализ. Также его еще называют синтаксический анализатор. Если еще проще, то данная программа выполняет анализ всего строения страницы, всего кода страницы. В HTML при нахождении ошибки, во время анализа она исправлялась, что требовало дополнительного времени - браузеру нужно было понять, что автор (разработчик) хотел написать. Например, при ошибке в каком-либо теге, он просто выводился с остальным текстом.

Еще одно отличие заключается в том, что все элементы должны быть закрыты, а одиночные теги должны после символов иметь знак /, например:
. Про тэги я напишу отдельную большую статью, также напишу про каждый тэг отдельно. Кодировка в XHTML - UTF-8 (наиболее распространенная сейчас), в HTML же использовалась ISO 8859-1.

Что такое Модуляризация XHTML?

Модуляризация XHTML это разделение XHTML 1.0, относительно HTML 4, на коллекцию абстрактных модулей, которые предоставляют специфические типы функциональности. Эти абстрактные модули реализованы в данной спецификации с использованием языка XML Document Type Definition/Определения Типа Документа, но ожидается появление реализации с использованием Схемы XML.
Правила определения абстрактных модулей и реализации их с использованием ОТД также определены в данном документе.


xhtml

Эти модули могут комбинироваться друг с другом и с другими модулями для создания поднабора и расширения типов документа XHTML, которые можно квалифицировать как членов семейства типов документов XHTML.

Для чего нужна Модуляризация XHTML?

Модель форматирования

Предыдущие версии HTML пытались определить части такой модели, которые требовались от пользовательского агента (ПА) для использования при форматировании документа. С появлением , W3C начал процесс отделения представления от структуры. XHTML 1.0 поддерживает это разделение, и данный документ продолжает движение от HTML и его потомков в этом направлении. Соответственно, данный документ не выдвигает никаких требований к модели форматирования, ассоциированной с представлением документов, размеченных с помощью типов документов Семейства XHTML.


xhtml

Наоборот, данный документ рекомендует, чтобы авторы содержимого полагались на механизмы определения стилей, такие как CSS, при определении модели форматирования для своего содержимого.
Если ПА поддерживают механизмы стилей, то документы будут сформатированы так, как ожидается.
Если ПА не поддерживают механизмы стилей, то документы будут сформатированы так, как определяет сам ПА. Это позволяет ПАгентам Семейства XHTML поддерживать сложные (так и просится — навороченные; А.Р.) модели форматирования на тех устройствах, где это возможно, и изменять модели форматирования на тех устройствах, где это допустимо

Расширяемый язык разметки гипертекста (XHTML) — это быстрый способ ссылаться на несколько рекомендаций по языку, которые широко используются на устройствах с поддержкой Интернета для просмотра веб-страниц. Хотя он назван в честь своего предшественника, языка гипертекстовой разметки (), он фактически основан на расширяемом языке разметки (XML), который является очень избирательной частью стандартного обобщенного языка разметки (SGML).
По сути, все они являются потомками SGML. Хотя HTML является прямым приложением SGML, XHTML — это то, что называется пространством имен, или набор определений для XML-документа, который помогает избавиться от двусмысленности, когда в любой заданной ситуации используется более чем один словарь XML.

Язык возник из-за нескольких ограничений HTML и разнообразных способов реализации HTML. Примерно в то время, когда HTML обновился до версии 4, он начал ослабевать, при правильном использовании многими интерпретаторами HTML, компьютерными программами, которые анализируют HTML-документы на отформатированной, просматриваемой веб-странице. Поскольку появились мобильные устройства и другие платформы для просмотра веб-страниц, было необходимо лучшее решение. XML — это гораздо более строгая реализация SGML чем HTML, и в одном экземпляре могут использоваться различные пространства имён XML. Поэтому около 2000 года консорциум World Wide Web (W3C) разработал и сделал XHTML одной из своих рекомендаций для решения некоторых из этих возникающих проблем.

Во всех смыслах и целях в большинстве случаев XHTML имитирует HTML, но поскольку первый использует пространство имён XML, его можно проанализировать любым интерпретатором XML, а HTML ограничивается только интерпретаторами HTML. XHTML в действительности воссозданный HTML под более ограничительным подмножеством XML SGML. Таким образом, более свежий язык сразу мог быть интерпретирован существующими веб-браузерами, а также стал доступен и для других платформ. Также важно помнить о том, что он должен соответствовать расширяемому аспекту прошивки XHTML. Он не только даёт возможность читать больше программ и платформ, но также он расширяется, позволяя использовать в своих документах другие пространства имён XML.

Благодаря возможности XHTML включать другие пространства имён XML в документ, его можно расширить несколькими способами, чтобы представить больше, чем просто форматирование страницы. Например, математический язык разметки (MathML) может быть включен в эти документы для отображения математических формул и обозначений. Изображения также могут быть встроены с использованием пространства имён масштабируемой векторной графики (SVG) в документе этого типа. Таким образом, XHTML также может быть включен в другой XML-документ.

Поскольку XHTML на самом деле просто HTML, уточнённый в соответствии с правилами XML, он предлагает три определения типа документа (DTD), которые дублируют те, что указаны в версии HTML версии 4. DTD — это подробное описание элементов языка разметки, включая, когда, где и как его можно использовать, а также любые связанные атрибуты. Но в более поздних версиях XHTML были установлены XML-схемы, ещё один, более надёжный способ описания XML-документа, который ещё больше расширил XHTML. В свою очередь были разработаны различные урезанные версии XHTML, которые затем могут быть использованы для конкретных целей, многие из которых вращаются вокруг мобильных вычислительных платформ.

И HTML , и XHTML — это языки для создания веб-страниц. HTML построен на основе SGML , а XHTML — на основе XML . Они похожи на две стороны одной медали. XHTML был создан из HTML с целью соответствия стандартам XML . Следовательно, XHTML является более строгим по сравнению с HTML и не позволяет отступать от правил написания кода.

Причиной разработки XHTML послужила путаница с некоторыми тегами. Страницы, написанные на HTML , выводились в разных браузерах по-разному.

Сравнительная таблица

HTML XHTML
Определение (из Википедии) HTML или HyperText Markup Language — это основной язык разметки для создания веб-страниц и других документов, которые могут быть просмотрены в браузере. XHTML (Extensible HyperText Markup Language) — это семейство языков XML-разметки, которые продолжают и расширяют Hypertext Markup Language (HTML), на котором написаны веб-страницы.
Расширения файлов .html, .htm. .xhtml, .xht, .xml, .html, .htm.
Формат использования текст/html. приложение/xhtml+xml.
Разработан W3C и WHATWG. World Wide Web Consortium.
Тип формата Формат документов. Язык разметки.
Расширен из SGML. XML, HTML.
Расшифровка Язык разметки гипертекста. Расширяемый язык разметки гипертекста.
Приложение Приложение Standard Generalized Markup Language (SGML). Приложение XML.
Функции Веб-страницы написаны на HTML. Расширенная версия HTML, более строгая, основанная на XML.
Поведение Гибкие фреймворки не требуют анализа синтаксиса HTML. Ограничен правилами XML и требует их соблюдения.
Происхождение Предложен Тимом Бернерсом-Ли в 1987 году. Рекомендация World Wide Web Consortium 2000 года.
Версии HTML 2, HTML 3.2, HTML 4.0, HTML 5. XHTML 1, XHTML 1.1, XHTML 2, XHTML 5.

Обзор HTML и XHTML

HTML является основным языком разметки веб-страниц. Он создает структурированные документы, выделяя в них такие элементы, как заголовки, списки, ссылки, цитаты и т.д. Это позволяет встраивать изображения и объекты для создания интерактивных форм. HTML задается с помощью тегов в угловых скобках — например, . Также в его коде могут содержаться скрипты, написанные на JavaScript .

XHTML представляет собой семейство языков XML , которые расширяют или продолжают версии HTML . Они не допускают пропусков любых тегов или минимизации атрибутов. XHTML требует, чтобы каждому открывающемуся тегу соответствовал закрывающийся тег в корректном порядке. Например, если в языке гипертекста допускается использование одиночного тега
, то в XHTML в отличие от HTML нужно написать тег
. В этом и заключается отличие.

Функции документов HTML и XHTML

Синтаксис HTML состоит из следующих компонентов: открывающий и закрывающий тег, атрибуты элементов (задаваемые в тегах ), текстовый и графический контент. HTML-элемент — это все, что находится между тегами, включая сами теги.

Документ XHTML содержит только один корневой элемент. Все элементы, включая переменные, должны быть написаны в нижнем регистре, а присвоенные значения — заключены в кавычки, закрыты и вложены. В XHTML это является обязательным требованием — в отличие от HTML . Объявление DOCTYPE XHTML определяет правила для документов, которым необходимо следовать.

Основной синтаксис HTML допускает использование множества сокращений, чего не допускается в XHTML . Например, элементов, для которых необязательно наличие и открывающегося, и закрывающегося тега. XHTML требует, чтобы все элементы имели и открывающийся, и закрывающийся тег. В то же время XHTML вводит новые сокращения: тег XHTML может быть открыт и закрыт с помощью косой черты (
).

Введение такого синтаксиса, который не используется в объявлениях SGML для HTML 4.01 , могло привести к путанице в приложениях на ранних стадиях. Чтобы решить эту проблему, нужно использовать пробел перед закрытием тега:
.

Спецификация XHTML и HTML

HTML и XHTML могут быть задокументированы совместно. И HTML 4.01 , и XHTML 1.0 имеют три подспецификации — строгую, нестрогую и фрэймовую. Отличие документов HTML и XHTML заключается в декларировании документов. Другие отличия синтаксические. HTML допускает отсутствие закрывающегося тега, пустые элементы без закрывающегося тега. Расширяемый язык разметки гипертекста очень строг в отношении открывающихся и закрывающихся тегов XHTML . Он использует встроенный язык определения функционала атрибутов. Все требования к синтаксису XML соблюдаются в XHTML -документе.

Но эти различия проявляются только тогда, когда XHTML -документ используется как приложение XML ; то есть как MIME-типы приложение / XHTML + XML , приложение / XML или текст / XML . Документ XHTML , используемый как MIME-тип текст / HTML должен интерпретироваться как HTML , так что в данном случае применяются правила HTML . CSS , написанный для XHTML , используемого, как MIME-тип текст / HTML , может работать некорректно в документе, который применяется как, как MIME-тип приложение / XHTML + XML . Для получения дополнительной информации о MIME-типах ознакомьтесь с соответствующей документацией.

Это может быть важно, когда вы используете документы XHTML , как текст / HTML . Если не знать о данных различиях, вы можете создать CSS , который не будут работать как ожидается, если документ используется, как XHTML .

Там, где встречаются термины «XHTML » и «XHTML document «, предполагается, что в оставшейся части этого раздела они определяют использование разметки XHTML , как MIME-тип XML . XHTML-разметка , используемая в качестве текста / HTML , является HTML-документом .

Как перейти с HTML на XHTML

  • Включите атрибуты xml:lang и lang для элементов, устанавливающих язык;
  • Используйте синтаксис пустого элемента для элементов, указанных в HTML , как пустые;
  • Используйте дополнительный пробел в тегах пустых элементов: ;
  • Используйте закрывающиеся теги для элементов, которые могут содержать контент, но являются пустыми: ;
  • Не включайте объявление XML .

Чтобы понять, чем отличается HTML от XHTML , рассмотрим преобразование документа XHTML 1.0 в HTML 4.01 . Для этого необходимо выполнить следующие действия:

  • Язык для элемента должен быть указан с помощью атрибута lang , а не атрибута XHTML xml:lang ;
  • Удалите пространство имен XML (xmlns=URI ). HTML не имеет средств для работы с пространствами имен;
  • Измените объявление типа документа с XHTML 1.0 на HTML 4.01 ;
  • Удалить объявление XML , если оно присутствует. Как правило, это: ;
  • Убедитесь в том, что для MIME-типа документа задано: text/html . И в HTML , и в XHTML , это задается в HTTP-заголовке Content-Type , отправляемом сервером;
  • Измените синтаксис пустого элемента XML на стиль пустого элемента HTML (с
    на
    ).

Перевод статьи «HTML vs XHTML » был подготовлен дружной командой проекта



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: