打开 Graph 名称空间声明: 带 XMLNS 或 head 前缀的 HTML?

关于如何最好地实现 OpenGraph 名称空间,我已经看到了相互冲突的信息。具体来说,Open Graph 网站使用了一些不同的方法,而 Facebook Open Graph 示例使用了其他方法。

打开图形网站示例(使用 HTML 前缀属性) :

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

打开图形网站源代码(使用 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">

推荐的方法是什么,或者根本不重要?

55746 次浏览

它们都是等价的,都会起作用。

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

我会把我们所有的文件更新到前缀。

Prefix/xmlns 属性对于定义简写非常有用。Rdf 来自 xml 沿袭,因此 xmlns 符号应该独立于 doctype 细节工作。Rdfa 使用包含前缀的属性来扩展 html,这些前缀由 < a href = “ http://www.w3.org/TR/rdfa-in-html/# extations-to-the-html5-language”rel = “ nofollow”> http://www.w3.org/tr/rdfa-in-html/#extensions-to-the-html5-syntax 提供 然而,这需要坚持 http://dev.w3.org/html5/rdfa/rdfa-module.html 此外,还在等待对 rel = “ profile”的工具支持。在此之前,只能在使用旧的 doctype 或者手动放置 rdf: 用于验证目的或者等待验证器等工具赶上来之间做出选择。声明的正确位置是任何元素开始标记,它是使用简写符号的地方的祖先。特别是 og 前缀的情况,它是由 RDFa Core http://www.w3.org/2011/rdfa-context/rdfa-1.1.html的初始上下文预定义的,因此为了更新的文档类型而完全跳过它是可以的。特别是对于 html5,RDFa 初始上下文 http://www.w3.org/2011/rdfa-context/html-rdfa-1.1仅在前面提到的 RDFa 初始上下文之后加载。

我试着按照@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>

有一个最好的验证方法。

核心初始上下文 承认 og作为一个广泛使用的词汇前缀:

RDFa 用户可以在 HTML 代码中使用这些前缀 没有定义前缀的义务。JSON-LD 的前缀列表也在 URI http://www.w3.org/2013/json-ld-context/rdfa11中定义为 JSON-LD 上下文; JSON-LD 用户可以使用带有该 URI 的 @context键作为使用相同前缀的速记。

为了清楚起见,增加了重点。

因此,不需要向 HTML 文档添加名称空间。