据我理解,无论是XHTML(1.0,1.1)还是XHTML 5都不需要DTD。如果这是真的,浏览器如何区分这两者呢?
我只能猜测,当浏览器支持(X)HTML 5时,所有XHTML都将按照XHTML 5规则进行解析(假设XHTML 5是XHTML 1.0的超集)。这就是它的工作方式吗?
据我理解,无论是XHTML(1.0,1.1)还是XHTML 5都不需要DTD。如果这是真的,浏览器如何区分这两者呢?
我只能猜测,当浏览器支持(X)HTML 5时,所有XHTML都将按照XHTML 5规则进行解析(假设XHTML 5是XHTML 1.0的超集)。这就是它的工作方式吗?
来源:http://hsivonen.iki.fi/xhtml2-html5-q-and-a/
如果我可以为XHTML5使用任何文档类型,那么浏览器如何区分XHTML 1.0和XHTML5?
它们无法区分也不需要区分。按设计,实现XHTML5的用户代理将适当地处理XHTML 1.0作为输入的内容。
XHTML 5规范说“一般来说,作者不应该试图在Web上使用XML”。为什么要编写像XHTML 5这样的XML规范,然后又阻止作者使用它?为什么不只是放弃对XML(XHTML 5)的支持呢?
无论我们做什么,有些人都会在HTML 5中使用XML。这是一件简单的事情——XML是描述树结构的元语言,HTML 5是一个树结构,很明显XML可以用来描述HTML 5。问题在于,如果我们不指定它,那么所有认为这是显而易见并开始这样做的人都会以稍微不同的方式做,我们将面临互操作性的噩梦。因此,我们咬紧牙关,定义了如果人们这样做,它必须如何工作。
XHTML 1.0是一个标准。它与HTML 4不同。如果可以这样说,XHTML 5只是用XML形式表示HTML 5文档。可以通过DOCTYPE进行区分(HTML5和XHTML 1.x的DOCTYPE不同),但在XHTML5中,它的存在是非强制性的;元素命名空间也相同。因此,一般来说,没有很好的方法来区分它们。如果您想编写可移植的XHTML5,则提供DOCTYPE可能是最好的选择。