Open Graph命名空间声明:带有XMLNS或头部前缀的HTML?

我看到了有关如何最好地实现Open Graph命名空间的冲突信息。 具体来说,Open Graph网站使用了几种不同的方法,Facebook Open Graph示例使用其他方法。

Open Graph网站示例(使用HTML前缀属性):

<html prefix="og: http://ogp.me/ns#"> 

Open Graph网站源代码(使用HTML XMLNS属性):

 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#"> 

Facebook Open Graph文档(使用HEAD前缀属性):

 <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#"> 

Facebook Open Graph文档#2(使用HTML XMLNS属性):

 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="https://www.facebook.com/2008/fbml"> 

什么是推荐的方法或甚至不重要?

他们都是等效的,都将工作。

使用前缀,因为它是新推荐的方式,字符较less。

我会把我们所有的文档更新为前缀。

我尝试了@Paul Tarjan在头部使用前缀的回答。 但是, 我得到了一些Internet Explorer 8的问题 。 所以最后我仍然使用xmlns的方式来使用fb命名空间:

 <!DOCTYPE HTML> <html xmlns:fb="http://ogp.me/ns/fb#"> <head prefix="og: http://ogp.me/ns# object: http://ogp.me/ns/object#"> 
 <html xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns# fb: http://www.facebook.com/2008/fbml"> <head> 

有最好的方法来validation。

前缀/ xmlns属性是有用的定义短手。 rdf是从xml谱系,所以应该期望xmlns符号独立于doctype细节工作。 rdfa扩展html的属性,包括前缀http://www.w3.org/TR/rdfa-in-html/#extensions-to-the-html5-syntax然而,这需要坚持http::// dev。 w3.org/html5/rdfa/rdfa-module.html此外,其中提到的对rel =“profile”的工具支持还在等待中。 到那时,select是使用旧的文档types,还是手动放置rdf:用于validation目的,或等待validation器和这些工具追赶。 做出声明的正确位置是任何元素开始标记,它是使用简写符号的祖先。 特别是对于og前缀的情况,它由RDFa核心http://www.w3.org/2011/rdfa-context/rdfa-1.1.html的初始上下文预定义,所以对于较新的文档types,完全忽略它。; 特别是对于html5,RDFa初始上下文http://www.w3.org/2011/rdfa-context/html-rdfa-1.1仅在之前提到的RDFa初始上下文之后加载。;