Является ли HTML5 действительным XML?

Я смущен. Сотрудник обратил меня на то, что теги, заканчивающиеся на />, такие как <br />, все еще могут использоваться в HTML5. Я думал, что можно использовать только стиль <br>. Все "разговоры" через Интернет об использовании последнего.

Может кто-нибудь мне объяснит это? Это кажется очень запутанным и плохо документированным.

И это вызывает еще один вопрос: Является ли HTML 5 корректным XML?

Ответ 1

Нет. Контрпримеры:

Это допустимый HTML5, но недействительный XHTML5:

Действительный XHTML, который является недопустимым HTML:

Действительный HTML и XHTML, но с разными значениями:

  • HTML содержит сотни имен символов (например, &pound;, &copy;), XML имеет только 5 (quot, amp, apos, lt, gt)).

Ответ 2

Существует сериализация XML, называемая XHTML5. В принципе, вы можете использовать либо HTML5 (сериализация HTML), либо XHTML5 (сериализация XML). Проект спецификации говорит, что HTML5 "это формат, предложенный большинству авторов", в основном по тем же причинам люди рекомендуют text/html для XHTML 1.1.

Ответ 3

Вы можете разметить страницу как действительную HTML5 и XHTML5: http://www.w3.org/TR/html-polyglot/

Разметка Polyglot, которая соответствует четко определенному набору ограничений, интерпретируется как совместимая, независимо от того, обрабатываются ли они как HTML или как XHTML в соответствии с спецификацией HTML5.

Основной документ может выглядеть так:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  <head>
    <title></title>
  </head>
  <body>
  </body>
</html>

Конечно, вам нужно будет следовать некоторым дополнительным правилам (например, не использовать элемент noscript, например), описанный в связанном рабочем проекте.

Ответ 4

HTML5 может быть написан с самозакрывающимися косыми чертами или без них; он предназначен для обратной совместимости с HTML и nbsp; 4.01 и XHTML 1.0, так что легко преобразовать код в допустимый HTML5. Существует сериализация XML, называемая XHTML5, но для целей обратной совместимости с браузерами IE ее не рекомендуется использовать. Так что технически HTML5 не считается хорошо сформированным XML.

Ответ 5

Ни при каких условиях вы не ожидаете, что любой html-документ (независимо от версии) будет "правильно сформированным xml"

html!= xml.

Это другая спецификация с разными предложениями (я намеренно избегаю слова "правила" здесь) о том, как ее следует интерпретировать.

В спецификации HTML 5 достаточно "сделать это таким образом, но это нормально, если вы не делаете", показывая, что это удивительно, что любой из браузеров демонстрирует то же самое вообще.