使 XHTML5 正确验证,并使 ENTITY 可解析为 XML

Make XHTML5 validate correctly and ENTITY parseable as XML

提问人:cnst 提问时间:4/12/2016 最后编辑:Johncnst 更新时间:4/27/2016 访问量:171

问:

我正在从 XHTML 1.0 Strict 切换到 XHTML5,但我在默认的 DOCTYPE 声明方面遇到了问题——文档不再验证为 XML,并且在与扩展一起使用时无法在某些浏览器中加载,主要是因为实体等。application/xhtml+xml.xhtml—

我试过放回 and 的东西,它都可以按预期在浏览器中工作(没有 XML 解析错误,新元素仍然可以正常工作),但由于 HTML5 的规范,它不再由 W3 验证为有效的 HTML5,例如。XHTML 1.0 StrictDOCTYPEarticlemeta charset

如何自动导入实体以使浏览器验证 XML,但为 W3 验证器指定 HTML5?

XML HTML 验证 XHTML

评论

0赞 Alohci 4/12/2016
我不确定你能不能。HTML5 规范包含用户代理(浏览器)关于如何根据 doctype 公共标识符解析命名字符引用的规则,但它似乎不适用于一致性检查器。希望@sideshowbarker(验证者维护者)可能会发生,并能够提供更多的见解。我的观点是,如果你想使用和验证XHTML,就放弃命名字符实体,只使用本机字符或数字字符引用。
0赞 cnst 4/12/2016
所以,我试过使用浏览器,似乎一些较旧的Mozilla版本,例如,特别希望在文档类型中使用“XHTML 1.0 Strict”,否则会出现错误。所以,这听起来像是缺少向前兼容性 - 应该可以对旧版浏览器使用 XHTML 1.0 Strict 文档类型,同时为检查器提供额外的文档类型来检测 XHTML5。
0赞 Mr Lister 4/12/2016
如何在有效的 XML 文档中定义 HTML 实体引用的可能重复项?
0赞 Mr Lister 4/12/2016
这是 XHTML5 的已知问题。我认为这是因为 W3C 认为这些实体不再是必要的:你可以简单地输入任何你想要的字符。20年前设计这个系统时,这并不像今天那么容易。所以这可能是他们的理由:使用 — 而不是 —。不过,这仍然是一个真正的问题。
0赞 Mr Lister 4/12/2016
顺便说一句,无论如何您都在使用 XHTML 文档类型,我是否可以建议使用 XHTML 1.1 而不是 XHTML 1.0。XHTML 1.1 在验证者看来更像是 HTML5,具有<ruby>等新元素。

答:

1赞 John 4/27/2016 #1

对 HTML 和 XML 解析器使用数字 HTML 实体,例如 & 符号,而不是无效实体。通常 MDN(Mozilla 开发者网络)有可靠的信息,我讨厌 W3Schools,所以 12 月有一个相当详尽的列表,我也强烈推荐 Unicode 字符百科网站。&#38;&amp;

我的平台和网站(我的个人资料中的链接)以 XHTML5 的形式提供,并使用 UTF8 字符代替图像(更少的 HTTP 请求以获得更好的性能)。

就文档类型而言,您没有特别提到哪些浏览器的哪个版本,因此您需要发表评论以便我查看它。我的安装程序一直可以追溯到 Opera 2 和 Mozilla Suite 0.8。:-)