When an XHTML document is served as text/html, as it usually is, the xmlns
attribute does nothing.
When an XHTML document is served with an XML content type, the attribute specifies the default namespace of elements. In this case, the practical impact is that if the attribute is omitted, no element has its HTML meaning – all elements are taken as pure XML, which means that they have no special behavior and no default formatting, and the document is rather useless, it isn’t taken as HTML at all.