XHTML5(HTML5 的 XML 序列化)的文档类型是什么?

What is the doctype for XHTML5 (XML serialization of HTML5)?

提问人:Nitesh 提问时间:5/3/2016 更新时间:8/20/2017 访问量:2669

问:

HTML5 的 XML 序列化应该指定什么文档类型?

将文件扩展名保留为html,我可以告诉浏览器内容是XHTML5吗?

HTML xHTML 文档类型

评论

0赞 Mr Lister 5/3/2016
这听起来像是一个 XY 问题:你有一个问题,你试图通过将一些文件作为 XHTML 来解决这个问题。提出新问题。那么,您要解决的原始问题是什么?让我们先看看这一点。

答:

1赞 Quentin 5/3/2016 #1

HTML5 的 XML 序列化应该指定什么文档类型?

文档中

如果需要,XML 文档可以包含 DOCTYPE,但这不是符合此规范所必需的。此规范未定义公共或系统标识符,也不提供正式的 DTD。

所以它没有标准的 DTD,所以你不应该提供任何 Doctype(除非你先写一个 DTD)。


将文件扩展名保留为html,我可以告诉浏览器内容是XHTML5吗?

文件扩展名在 WWW 上无关紧要。Content-Type HTTP 响应标头应为 。application/xhtml+xml

评论

0赞 Nitesh 5/3/2016
从本地文件系统打开文件时,扩展名确实会有所不同。更重要的是,这是由于我问这个问题的验证问题。存在验证错误,例如,void 元素具有单独的关闭标记,否则这些标记在 xml 中是有效的
0赞 Quentin 5/3/2016
“从本地文件系统打开文件时,扩展名确实会有所不同。 — 这是 XHTML 的非典型用法,因为你在问题中没有提到它,所以可以合理地假设你在谈论 WWW。软件使用文件扩展名来确定本地系统上的文件类型,因此不要为其提供 .HTML 文件扩展名。
0赞 Quentin 5/3/2016
“存在验证错误,例如,void 元素具有单独的关闭标记,否则在 xml 中是有效的”——这是你没有提到的另一件事。您将需要找到一个 XHTML 感知验证器。如果您为 XHTML 编写了 DTD,则这可能是一个标准的 XML 验证程序。XHTML 没有标准的 DTD。
0赞 Nitesh 5/3/2016
有些 html 文件可能有 html5,但有其他 XHtml5,所以我不能只指定 mime 类型。
5赞 BoltClock 5/3/2016 #2

XHTML5 的“文档类型”是 。<!DOCTYPE html>

严格来说,HTML5 没有 doctype。它只有一个“看看我,我是一个 HTML5 文档”标记,它恰好类似于 doctype 声明,用于在 Web 浏览器中触发标准模式。正如您所说,由于 XHTML5 只不过是 HTML5 的 XML 序列化,因此它的“文档类型”与 HTML5 的相同。

如果您要询问 MIME 类型,那么它是 application/xhtml+xml,就像 XHTML 文档一样。doctype 对文档是作为 HTML 标记汤还是作为 XML 提供没有任何影响。

评论

0赞 Nitesh 5/3/2016
这是由于我问这个问题的验证问题。存在验证错误,例如,void 元素具有单独的关闭标记,否则这些标记在 xml 中是有效的
0赞 Nitesh 5/3/2016
有些 html 文件可能有 html5,但有其他 XHtml5,所以我不能只指定 mime 类型。那么xhtml扩展是最佳选择吗?
2赞 BoltClock 5/3/2016
@Nitesh:你的第一个错误是将你的网站作为HTML和XHTML的一部分来提供。从来没有人这样做过。没人。如果你这样做是因为你不能决定选择哪种风格,我会为你决定:HTML。
0赞 Stokely 8/20/2017 #3

任何对 XHTML 的使用都应该意味着它现在是一个 XML 文档。这是 XHTML 的唯一要求,尽管许多网站已将 XHTML 作为“text/html”MIME 类型(由 Web 服务器设置)提供,尽管它应该是“application/xhtml+xml”。因此,您的 Web 服务器应配置为以 XML 形式提供 XHTML。一旦它作为 XML 文档类型交付,如果网页的格式和验证不完美,则无法在 Web 浏览器中解析。