Является ли HTML5 действительным XML?
Я смущен. Сотрудник обратил меня на то, что теги, заканчивающиеся на />
, такие как <br />
, все еще могут использоваться в HTML5. Я думал, что можно использовать только стиль <br>
. Все "разговоры" через Интернет об использовании последнего.
Может кто-нибудь мне объяснит это? Это кажется очень запутанным и плохо документированным.
И это вызывает еще один вопрос: Является ли HTML 5 корректным XML?
Ответы
Ответ 1
Нет. Контрпримеры:
Это допустимый HTML5, но недействительный XHTML5:
Действительный XHTML, который является недопустимым HTML:
Действительный HTML и XHTML, но с разными значениями:
- HTML содержит сотни имен символов (например,
£
, ©
), 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 достаточно "сделать это таким образом, но это нормально, если вы не делаете", показывая, что это удивительно, что любой из браузеров демонстрирует то же самое вообще.