Атрибут xmlns тега <html>
Описание
Атрибут xmlns в теге <html> определяет XML-пространство имен (XML Namespace) для документа. Хотя он является обязательным для XHTML, в обычных HTML5-документах его использование не требуется.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- Содержимое XHTML-документа -->
</html>
Для обычного HTML5:
<!DOCTYPE html>
<html>
<!-- Содержимое HTML5-документа -->
</html>
Ключевые различия:
| Характеристика | XHTML | HTML5 |
|---|---|---|
| Требуется xmlns | Да | Нет |
| Тип документа | application/xhtml+xml | text/html |
| Синтаксис | Строгий XML | Более гибкий |
Когда может потребоваться xmlns:
- При работе с XHTML-документами
- При добавлении других XML-пространств имен (SVG, MathML)
- Для совместимости с некоторыми устаревшими системами
Пример с дополнительными пространствами имен:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:svg="http://www.w3.org/2000/svg">
<body>
<svg:svg width="100" height="100">
<svg:circle cx="50" cy="50" r="40" fill="red"/>
</svg:svg>
</body>
</html>
Рекомендации:
- Для обычных HTML5-документов не указывайте xmlns
- При работе с XHTML строго следуйте спецификациям
- Для современных проектов используйте HTML5
- При смешивании XML-технологий явно объявляйте пространства имен
Примечание: Хотя атрибут xmlns был важен в эпоху XHTML, современные HTML5-документы не требуют его указания. Браузеры корректно обрабатывают HTML-документы без объявления пространства имен.