Практическая разница между XHTML, HTML и XML - PullRequest
8 голосов
/ 22 января 2010

Итак, вот что я понимаю (пожалуйста, исправьте, если не так):

  • HTML5 - это новейшая версия (или, по крайней мере, скоро будет выпущена) HTML и содержит функции, которых у XHTML еще нет
  • XHTML, используемый как MIME-тип text / html, равен HTML для целей визуализации
  • Преобразование из text / html в application / xhtml + xml затруднительно, потому что это не HTML
  • XML не совместим с HTML

Итак, мой вопрос: какое отношение XHTML имеет к HTML, помимо использования тегов? Какова практическая цель использования XHTML поверх XML или его нет?

Ответы [ 4 ]

4 голосов
/ 22 января 2010

Да, HTML5 будет иметь функции (и даже элементы / теги), которых у XHTML еще нет. Он также снова введет некоторые теги из HTML4, которые были удалены для XHTML. (iframe, я думаю, один из них)

Если вы хотите узнать о различиях между HTML4 / XHTML и HTML5, прочитайте статью в Википедии по HTML 5: http://en.wikipedia.org/wiki/HTML_5#Differences_from_HTML_4.01.2FXHTML_1.x

Однако, нет, XHTML не равен HTML для целей рендеринга. http://hixie.ch/advocacy/xhtml

XHTML - это больше XML, чем HTML. Он по существу использует (большинство) элементов («тегов») из HTML, соблюдая при этом более строгую грамматику и семантику XML.

Это не равно HTML4 для целей рендеринга. Если вы используете MIME-тип XHTML - поскольку это XML - вы можете получить неприятные ошибки синтаксического анализа, если сделаете это неправильно:

A nasty XHTML parse error

... но, несмотря на эту проблему, использование XHTML может привести к более согласованному поведению между браузерами, чем HTML4; Поскольку HTML4 не такой строгий, браузеры очень стараются интерпретировать неоднозначную разметку, и разработчики браузера получают некоторую свободу в выборе способа обработки этой неоднозначности. Это приводит к несоответствиям, но с XHTML - будучи XML - браузер должен отказаться от отображения страницы вообще , если она будет неоднозначной.

XHTML может привести к проблемам со старыми браузерами, особенно с пустыми элементами (самозакрывающимися тегами), такими как <br />; старый браузер не будет знать, что делать с / и может подумать, что это часть имени тега, и тогда вы потеряете разрыв строки.

Наконец, я не знаю, что вы подразумеваете под «Преобразованием текста / html в application / xhtml + xml сложно, потому что это не HTML», но я рекомендую вам почитать книгу Эллиотт Расти Гарольд ... кажется, что это более 300 страниц ответа на вопрос;)

1 голос
/ 22 января 2010

HTML5 - новейшая версия (или, по крайней мере, скоро будет выпущена)

Проект. Нестабильный. Возможны изменения. Не собирается выпускаться в ближайшее время .

XHTML, используемый как MIME-тип text / html, равен HTML для целей визуализации

Больше или меньше. Написание HTML-совместимого XHTML - это больше, чем написание HTML или XHTML, и оно не позволяет использовать какие-либо интересные фрагменты XHTML.

Преобразование из text / html в application / xhtml + xml затруднительно, потому что это не HTML

Преобразование из HTML в XHTML на самом деле довольно тривиально. Tidy может сделать это для большого количества документов (включая все действительные документы HTML).

XML не совместим с HTML

Было бы правильнее сказать, что HTML не является XML.

Итак, мой вопрос: какое отношение XHTML имеет к HTML, помимо использования тегов? Какова практическая цель использования XHTML поверх XML или его нет?

Преимущество использования XHTML над XML примерно такое же, как и использование автомобиля над грудой металла и пластика. XML - это набор инструментов для построения языков разметки.

Преимущество использования XHTML над HTML состоит в том, что вы можете смешивать разные языки разметки в одном документе, поэтому (например) вы можете иметь документ XHTML + SVG + MathML. Это требует, чтобы клиент поддерживал все задействованные языки (или для неподдерживаемых языков изящно ухудшаться).

К сожалению, это непрактично для большинства проектов, так как Internet Explorer…

[doesn't support XHTML]

0 голосов
/ 22 января 2010

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

XHTML наложил более строгие структурные ограничения ... и является подмножеством XML - он более строг, чем HTML. Более строгая семантика позволяет:

  1. Более согласованные алгоритмы в разных браузерах - что означает большую согласованность в разных реализациях браузеров.
  2. Меньше тактов на рендеринг - это означало, что устройства с низким энергопотреблением могли лучше обрабатывать веб-страницы рендеринга
  3. Более строгая структурная семантика является требованием для "семантической сети", что означает, что структуру можно использовать для последовательного извлечения полезной информации из веб-страниц.

XHTML5 расширяет HTML, чтобы сделать Интернет более интерактивным, насколько я понимаю, и, возможно, он более важен, чем HTML для XHTML, поскольку более строгая семантика должна была применяться с самого начала. XHTML5 добавляет много заметных изменений в протокол.

Что касается XML против HTML для веба - ну, браузер нуждается в некоторой элементарной фиксированной структуре документа, чтобы придать смысл документу, возможно, это не так важно, как раньше: под этим я подразумеваю, что XSLT и CSS может превратить документ в презентабельный вывод для веб-браузера. Однако документ должен иметь некоторую неотъемлемую фиксированную структуру, основанную на документе, которая имеет смысл для браузера без современных веб-технологий. HTML4 позволяет структурировать документ, так что элементарные браузеры, такие как lynx , могут отображать документ - в конце концов, у lynx нет шансов отобразить CSS и элементы стиля, такие как изображения.

XHTML5 находится в другой лиге в целом и, вероятно, полностью исключает элементарные браузеры - но его словарь с фиксированными тегами обеспечивает значение для веб-браузеров, веб-разработчиков и дизайнеров. веб-браузерам, вероятно, нужны определенные теги для включения новых интересных функций, но сам по себе словарь более элегантен, чем просто думать о веб-странице как о ad hoc XML-документе.

0 голосов
/ 22 января 2010

Нет, HTML5 не будет иметь функций, которых нет у XHTML, потому что он определяет XHTML5 в том же документе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...