Сравните / сопоставьте HTML, XHTML, XML и HTML5

Хорошо, поэтому я не совсем уверен, в чем разница между этими языками. Может кто уточнить? Я знаю, что XML имеет определяемый пользователем тег, а html предопределен, но это в основном объем моих знаний.

Я знаю, что HTML5 должен заменить HTML, но разве XML не должен был это делать? В принципе, какие языки здесь заменяют другие, а какие дополняют? Заменяет ли XML XHTML?


person GiH    schedule 15.09.2009    source источник
comment
Также стоит отметить, что HTML не является подмножеством XML: stackoverflow.com/questions/5558502/is-html5-valid-xml/   -  person Ciro Santilli 新疆再教育营六四事件ۍ    schedule 12.12.2019


Ответы (9)


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

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

XHTML - это HTML-код на основе XML. Он выполняет ту же функцию, что и HTML, но с теми же правилами, что и XML-документы. Эти правила касаются структуры разметки.

person Thomas Owens    schedule 15.09.2009
comment
Некоторые из моих описаний требуют небольшой доработки. Не стесняйтесь убирать любую формулировку, если хотите. Попробую потом ткнуть и почистить. - person Thomas Owens; 15.09.2009
comment
Так что будет ли я ошибаться, если скажу, что XHTML является преемником HTML, а HTML5 заменит XHTML? или HTML и HTML5 никогда не заменят XHTML? - person GiH; 16.09.2009
comment
@GiH Зависит от того, имеете ли вы в виду спецификацию или то, что на самом деле используется. Я помню, как читал, что крошечная часть сайтов с типом документа XHTML на самом деле обслуживала правильный тип MIME, и поэтому браузеры фактически не рассматривали большинство из них как XHTML. (Не говоря уже о XHTML, который не проверялся и не обрабатывался браузером как XHTML.) Я думаю, что к настоящему времени можно с уверенностью сказать, что да, HTML5 заменил HTML и XHTML в целом в соответствии со спецификацией, и что На практике никогда не было такого большого количества настоящего XHTML. - person jinglesthula; 12.10.2018

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

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

Doctype - это язык на основе SGML, который использует синтаксис, полностью отличный от XML, для определения грамматик языка разметки и общих соглашений о типах данных, чтобы отличать элементы данных от текста.

XML Schema - это письменный язык XML, который позволяет определять грамматику языка с точной структурной формой в дополнение к конкретным соглашениям о типах данных для элементов, структур и атрибутов. В отличие от словарей SGML, языки, написанные на Schema, обладают структурным самосознанием, так что они знают свои внутренние требования в любой точке структуры. Языки, определенные схемой, могут быть немедленно открыты для проверки посредством ссылки на документ схемы из-за структурного самосознания, в то время как языки, определенные в Doctype, требуют несвязанного программного обеспечения со статическими определениями для выполнения проверки.

HTML 1.0 был написан на английском языке и не является ни SGML, ни XML.

HTML 2–4 написаны на SGML и обладают гибкими возможностями SGML, такими как теги в верхнем регистре или начальные теги без соответствующего закрывающего тега.

XHTML 1.0 - это определенная SGML форма языка HTML с некоторыми расширенными требованиями для обеспечения прогрессивной совместимости с синтаксисом XML.

XHTML 1.1 - это язык HTML, определенный в XML с требованиями правильности XML.

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

XHTML5 означает «XML-сериализация HTML5» и представляет собой синтаксис XML для HTML5, который можно использовать при сериализации дерева DOM обратно в HTML5 (дерево DOM теряет способность различать теги супа тегов и правильные теги) и должно придерживаться более строгие правила и пространства имен XML. Он предназначен для облегчения машинного чтения или обмена данными, а также для сравнения двух документов HTML5. Он указан вместе со стандартом HTML5 и в нем (спасибо hsivonen за указание на это).

person Community    schedule 30.09.2009
comment
XHTML5 определен в той же спецификации, что и HTML5, хотя название спецификации - HTML5. Определение публично и публично использовалось в течение многих лет. - person hsivonen; 03.11.2009

XML - это синтаксис: он определяет, как вы пишете данные, но не то, какие данные вы можете писать. Например:

<something otherthing="stuff">content</something>

HTML - это словарь: он определяет, какие типы элементов вы можете писать (например, BODY, P, LI и т. Д.), Но не очень строг в отношении того, как вы их пишете (см. "Tag soup");

XHTML - это (приблизительно) словарь HTML, за исключением того, что он написан с использованием (гораздо более строгого) синтаксиса XML. Следовательно (из-за более строгого синтаксиса) программному обеспечению легче разбираться, но непрограммистам труднее писать правильно. Он не очень популярен, потому что Internet Explorer не поддерживает его должным образом.

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

person ChrisW    schedule 15.09.2009

Во-первых, был SGML, концептуальный предок как HTML, так и XML, который является

  • S стандарт (ISO 8879: 1986), чтобы разные организации и программы могли обмениваться документами.
  • G расширен, чтобы пользователи могли определять новые теги.
  • M arkup, чтобы содержание документа можно было дополнить структурной информацией, описывающей содержание.
  • L, так что существует грамматика, определяющая разметку.

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

XML был создан как упрощение SGML.

XHTML был создан для преобразования HTML в правильно сформированный XML (например, требуя закрывающих тегов, что не было строго необходимым в SGML и HTML).

HTML 5 - текущая версия HTML. Он отвергает мотивацию XHTML и допускает более свободную спецификацию разметки, чем того требуют правила XML.

person kjhughes    schedule 20.09.2017
comment
Я хотел бы добавить, что современный HTML5 по-прежнему является SGML, хотя спецификации HTML больше не ссылаются на стандарт SGML (ISO 8879). Наследие SGML проявляется в лексических правилах для имен элементов (допустимые символы, сворачивание регистра), в выводе тегов HTML, в поведении HTML по отношению к ним. исключение имен атрибутов (как в ‹выбранной опции›) и многие другие детали. Что неудивительно, поскольку HTML основан на SGML, а HTML5 специально разработан для обеспечения обратной совместимости в качестве основной цели. Источник: опубликовал доклад / доклад на эту тему на XMLPrague 2017 (см. sgmljs.net/blog/blog1701. html). - person imhotap; 21.09.2017

Вы можете погуглить или использовать Википедию для точного определения. Я просто приведу пример:

HTML:

<DIV id=header>header</div>

XHTML:

<div id="header">header</div>

HTML 5:

<header>header</header>

XML - это синтаксис, на котором основан XHTML:

<something otherthing="stuff">content</something>
person marcgg    schedule 15.09.2009
comment
HTML также позволяет имена элементов в нижнем регистре. - person Gumbo; 15.09.2009
comment
да, но он также позволяет использовать верхний регистр. поэтому я поставил DIV и div - person marcgg; 16.09.2009

См. Рисунок для двух сериализаций HTML5 Абстрактный язык. alt text

person karlcow    schedule 30.09.2009

HTML - это язык разметки для веб-страниц, а XML - это язык разметки информации. XML никогда не задумывался как прямая замена HTML, он имеет другую область применения.

HTML 5 - это последняя версия HTML. «Текущая» версия HTML (поддерживаемая практически всеми используемыми браузерами) - 4.01.

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

person Guffa    schedule 15.09.2009
comment
Текущая версия HTML - 4.01. - person Gumbo; 15.09.2009
comment
@ Гамбо: Я имел в виду именно это. ;) - person Guffa; 16.09.2009

HTML - это язык разметки, созданный для веб-страниц. HTML 5 - пятая версия HTML.

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

person Chuck    schedule 15.09.2009

Стандарты для всех этих языков поддерживаются World Wide Web Consortium.

Точные различия и тонкости выходят за рамки вопроса о stackoverflow, но на w3schools.com есть несколько руководств, которые могут помочь вам начать работу с этим.

Я бы посоветовал прочитать введение к каждому из языков, о которых вы спрашивали в w3schools. Это должно дать вам некоторое представление о различиях.

person Ben S    schedule 15.09.2009
comment
Точные различия и тонкости - это основа stackoverflow. w3schools не отличается точностью или тонкостью - person Benxamin; 15.04.2011