xml - 显式声明默认 xhtml 命名空间的优点

标签 xml xhtml namespaces

如果我有一个 xhtml 文档,我假设默认命名空间是“xhtml”。显式声明此默认命名空间有什么优点或缺点,例如:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml" xmlns:xi="http://www.w3.org/2001/XInclude">
  <head>

  . . .

最佳答案

在 HTML5 兼容浏览器中,HTML 序列化中 HTML 元素的默认命名空间是 http://www.w3.org/1999/xhtml
在 XHTML 序列化中,XML 规则适用。如果您不使用 xmlns= 分配默认命名空间,无前缀的元素将不在命名空间中,浏览器将无法理解如何解释您的标记。从这个意义上说,您需要显式声明默认命名空间。

然而...

使用 HTML 序列化还是 XHTML 序列化不取决于 DOCTYPE 而是取决于内容类型。如果您使用 XML 内容类型(例如 application/xhtml+xml)提供页面,则您只会获得 XHTML 序列化。 .

如果您提供内容类型为 text/html 的页面(我敢打赌你是,因为几乎每个人都这样做)那么你正在使用 HTML 序列化并且你的 XHTML 1.0 Strict doctype 无关紧要。在这种情况下,默认命名空间声明除了保持验证器安静之外什么也没有。

关于xml - 显式声明默认 xhtml 命名空间的优点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8095655/

相关文章:

android - 使用 Android 解析 SD 卡上的 XML 文件

python - 为什么我的 XPath 选择文本不起作用?

android - 如何在 RelativeLayout 中的 View 之间添加空间

html - CSS 菜单(无法让标签达到全高)

android - Eclipse Android Common XML 编辑器无法在模式之间切换

java - 将 XHTML 嵌入到 XML 中

xml - 谷歌移动站点地图备用链接,XHTML 问题

ruby-on-rails - 命名空间 Controller 重定向 url

c++ - 一个类可以共享一个命名空间的名称吗?

kubernetes - 想要限制命名空间用户访问启用 RBAC 的 AKS 集群中的 TLS secret