2012-04-20 81 views
1

当验证我的页面上,W3-验证给我一个错误在我的代码每HTML5有效的命名空间的标记前缀

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

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

回答

1

你不能使它们有效。不在HTML中,不在XHTML中。 HTML5中允许的唯一有效自定义属性启动“数据 - ”。

你可以使你的标记有效的HTML5 +东西或XHTML5 +的东西,但得到一个验证程序来检查这是一个不平凡的任务。

+0

实际上,只要您正确地将名称空间声明为非HTML名称空间,则在XHTML中它们是有效的。然而,'tag'元素是无效的,它应该在另一个命名空间中。请参阅http://www.w3.org/TR/xhtml1/#well-formed – Abel 2013-05-23 07:10:27

+0

@Abel - 请引用任何HTML或XHTML规范中的说明它们是有效的。 – Alohci 2013-05-23 07:14:52

+0

我在回答时已经更新了我的评论;)。另外,在HTML5中,允许使用另外两个命名空间MathML和SVG。 – Abel 2013-05-23 07:15:27

4

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

参见:“HTML语法不支持命名空间声明,即使在外国元素” http://www.w3.org/TR/2011/WD-html5-20110405/namespaces.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

哦,当你在那里,<tag />语法也是XML, HTML5。