【问题标题】:HTML5 valid namespace tag prefixesHTML5 有效的命名空间标签前缀
【发布时间】:2012-04-20 11:58:48
【问题描述】:

在验证我的页面时,W3-Validator 每次都会给我一个错误

<tag addthis:title="AddThis share title" />

我的代码中的属性。如何使这些属性对 HTML5 有效,以便页面验证?我需要这些标签,所以 addthis 为我的共享链接使用正确的标题,所以我无法摆脱它们...

【问题讨论】:

    标签: html tags w3c w3c-validation


    【解决方案1】:

    我不得不假设“addthis”是一个 XML 命名空间; html 标签是否声明了类似&lt;html xmlns:addthis=".."&gt; 的内容?如果不是,它将不会验证,因为该文档的命名空间未定义。如果是这样,它将无法验证,因为“addthis”不是标准命名空间。

    见:http://www.w3.org/TR/2011/WD-html5-20110405/namespaces.html

    让您感到困惑的是“HTML 语法不支持命名空间声明,即使在外来元素中也是如此。”

    查看 http://www.w3.org/TR/2011/WD-html5-20110405/syntax.html#elements-0cdr:license 示例。

    不幸的是(在您的情况下)HTML5 不是 XML,因此 XML 命名空间在 HTML5 中不一定有效。您唯一真正的选择是忽略验证错误。

    不相关的问题:HTML5 validator failing on Facebook OpenGraph XML Namespace xmlns:og

    哦,当你在那里时,&lt;tag /&gt; 语法也是 XML,不是 HTML5。

    【讨论】:

      【解决方案2】:

      您不能使它们有效。不在 HTML 中,不在 XHTML 中。 HTML5 中唯一允许的有效自定义属性以“data-”开头。

      您可以使您的标记有效 HTML5+something 或 XHTML5+something,但让验证器进行检查并非易事。

      【讨论】:

      • 实际上,在 XHTML 中它们是有效的,只要您正确地将命名空间声明为非 HTML 命名空间。但是,tag 元素无效,它应该在另一个命名空间中。见w3.org/TR/xhtml1/#well-formed
      • @Abel - 请在任何 HTML 或 XHTML 规范中指出它们有效的地方。
      • 我已经在你回答时更新了我的评论;)。此外,在 HTML5 中,还允许使用另外两个命名空间,MathML 和 SVG。
      • 格式正确是无效的。
      • 我读它的方式(但我当然可能是错的)是只有“严格”的一致性受到这种方式的阻碍。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-01
      • 2013-06-01
      相关资源
      最近更新 更多