代码之家  ›  专栏  ›  技术社区  ›  ale

我是否需要使用XHTML doctype在页面上声明XML?

  •  6
  • ale  · 技术社区  · 15 年前

    我看到一些相互矛盾的信息,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 Validator 使用和不使用XML声明,它是双向传递的。在这一点上,我猜这只是一个“风格”的东西。

    4 回复  |  直到 15 年前
        1
  •  9
  •   bobince    15 年前
    <?xml version="1.0" encoding="utf-8"?>
    

    …是XML的默认版本和编码,因此您根本不需要它。如果您将XHTML作为text/html提供,那么它可能根本不应该存在。

    听起来有些混乱。。。DOCTYPE不是标记,也不是<?xml?>(这被称为XML声明,看起来像一条处理指令,但也不是其中之一)。

    如果要同时包含这两种语言,则必须首先使用XML声明。诀窍在于IE6的DOCTYPE嗅探器只检测标准模式的DOCTYPE,如果它们是页面上的第一件事,这意味着您不能使用XML声明,您必须坚持使用XML 1.0和UTF-8编码(这不是什么大损失)。

        2
  •  4
  •   james.garriss Pavel    13 年前

    XHTML 1.1 specification :

    类似于上面的XML声明 并非所有XML文档中都需要。 XHTML文档作者应该使用XML XHTML文档作者必须使用XML 当字符 文档的编码不是 高级协议。

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

        3
  •  4
  •   awvalenti    12 年前

    http://validator.w3.org/ 仅接受<?xml>以前的东西<!DOCTYPE>。另一种方法(doctype before?xml)不会得到验证。

        4
  •  2
  •   Sampson    15 年前

    我从未包含它(总是只包含doctype),w3c说我的XHTML1.0严格项目是“有效的”