我是否需要使用XHTML文档类型的网页上声明XML?(Do I need to declare XM

2019-08-02 15:26发布

我已经看到了一些相互矛盾的信息,一个XHTML文档还必须声明自己为XML。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

然而,在其他地方我看到(包括w3.org)的DOCTYPE 必须是第一个标签声明。

由于W3说,它必须是真实的。 不过,我可能有一些页/应用程序撒谎说是继第一种方法。 我有哪些风险?

编辑 :我只是通过跑了页面W3验证使用和不使用XML声明,并通过两种方式。 在这一点上,然后,我猜它只是一个“风格”的东西。

Answer 1:

<?xml version="1.0" encoding="utf-8"?>

...是XML的默认版本和编码,所以你并不需要它。 如果你所服务的XHTML为text / html,它可能不应该在所有的在那里。

然而,在其他地方我看到(包括w3.org)的DOCTYPE必须是第一个标签。

听起来似乎有些混乱...... DOCTYPE是不是标签也不是<?XML?>(这就是所谓的XML声明,看起来像一个处理指令,但它不是其中的一个,要么)。

如果您既包括,XML声明必须是第一位的。 诀窍是,IE6的DOCTYPE嗅探器只能检测标准模式文档类型,如果他们在页面上的第一件事情,这意味着你不能使用XML声明,你必须用XML 1.0和UTF-8编码棒(这是没有很大失利)。



Answer 2:

从XHTML 1.1规范 :

像这样的XML声明的上面是不是在所有的XML文档必须的。 XHTML文档作者应该使用他们的所有文档的XML声明。 当文档的字符编码是比默认的UTF-8或UTF-16等,并通过高层协议不指定编码XHTML文档作者必须使用XML声明。

http://www.w3.org/TR/xhtml11/conformance.html



Answer 3:

http://validator.w3.org/只接受<?xml的>东西之前<!DOCTYPE>。 周围的其他方法(DOCTYPE前?XML)将不会得到验证。



Answer 4:

我从来没有包括它(总是只用了文档类型),和W3C说我的XHTML 1.0严格的项目是“有效的”。



文章来源: Do I need to declare XML on a page using the XHTML doctype?