Пространство имен HTML по умолчанию против явного пространства имен - PullRequest
0 голосов
/ 16 января 2019

Почему это неправильно рендеринг в Chrome:

<h:html xmlns:h="http://www.w3.org/1999/xhtml">
  <h:head/>
  <h:body>
    <h:ul>
      <h:li>
        A
      </h:li>
      <h:li>
        B
      </h:li> 
    </h:ul>
  </h:body>
</h:html>

В то время как это делает правильно? :

<html xmlns="http://www.w3.org/1999/xhtml">
  <head/>
  <body>
    <ul>
      <li>
        A
      </li>
      <li>
        B
      </li> 
    </ul>
  </body>
</html>

Что мне здесь не хватает? Разве пространство имен по умолчанию не должно вести себя так же, как явное указание пространства имен?

1 Ответ

0 голосов
/ 16 января 2019

HTML не является XML.

Ваш код работает нормально, когда я тестирую его в Chrome, с application/xml Content-Type.

Это не работает как text/html.

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

...