Преимущества явного объявления пространства имен xhtml по умолчанию - PullRequest
0 голосов
/ 11 ноября 2011

Если у меня есть документ xhtml, я предполагаю, что пространство имен по умолчанию - «xhtml».Есть ли какое-либо преимущество или недостаток для явного объявления этого пространства имен по умолчанию, например:

<!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" xmlns:xi="http://www.w3.org/2001/XInclude">
  <head>

  . . .

1 Ответ

2 голосов
/ 12 ноября 2011

В браузерах, совместимых с HTML5, пространством имен по умолчанию для элементов HTML в сериализации HTML является http://www.w3.org/1999/xhtml

В сериализации XHTML применяются правила XML. Если вы не назначите пространство имен по умолчанию, используя xmlns=, элементы без префиксов не будут находиться в пространстве имен, и браузер не поймет, как интерпретировать вашу разметку. В этом смысле вам необходимо явно объявить пространство имен по умолчанию.

Однако ...

Используете ли вы сериализацию HTML или сериализацию XHTML, зависит не от DOCTYPE, а от типа содержимого. Вы получаете сериализацию XHTML только в том случае, если обслуживаете страницу с типом контента XML, таким как application/xhtml+xml.

Если вы обслуживаете страницу с типом содержимого text/html (и я готов поспорить, что вы согласны, так как почти все), то вы используете сериализацию HTML, и ваш тип документа XHTML 1.0 Strict не имеет значения. В этом случае объявление пространства имен по умолчанию ничего не добивается, за исключением того, что валидатор молчит.

...