【问题标题】:Adding xmlns protocols to xml namespace in HTML 5在 HTML 5 中将 xmlns 协议添加到 xml 命名空间
【发布时间】:2013-02-02 00:40:08
【问题描述】:

举个例子,我们的头像来自Facebook's open graph protocol

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

使用 xhtml 文档类型会很好。 但是 HTML 5 呢? 我已经搜索了答案,包括以前的 stackoverflow 问题,但没有找到答案。 我知道如果 xmlns 属性的值恰好是“http://www.w3.org/1999/xhtml”,则 HTML5 中允许使用 xmlns 属性。但是在 HTML5 下是否允许带有 xmlns:ex 格式前缀的属性?如果是,使用它们时是否需要 xmlns 属性?我知道如果您没有使用它的其他属性,则不需要该属性。 这是practically my same question,但答案似乎没有回答这个问题。 another question 询问有关 HTML5、facebook 和 xmlns 的问题。 只有一条评论提到:

只有 xmlns="w3.org/1999/xhtml";属性是允许的。 >xmlns:fb="facebook.com/2008/fbml";根据 HTML5 无效。 – hsivonen 2009 年 7 月 6 日 12:05

那是真的吗?你不能在 HTML5 中使用 Facebook Open Graph?!

【问题讨论】:

  • 我知道 xmlns:og 属性只是为了让页面的任何访问者知道数据的格式及其含义,并且 facebook 不需要它来解释它已经期望的数据以某种格式。但我认为 facebook 可能需要在抓取网站时查看并知道查找数据。但我想它并没有像我想象的那样工作。
  • 似乎 facebook 不需要 xmlns:og 属性来解释数据,并且在有人喜欢页面/内容时完成,并且仅在有人喜欢内容时使用。我在想 facebook 抓取了你的页面,并提供了这些内容,以便直接通过 facebook 搜索和喜欢。不是这样吗?
  • 当有人在状态消息中“分享”您的 URL 时,Facebook 也会获取此元数据。例如,如果我在 Facebook 中创建一个新状态并将您的 URL 粘贴到其中,那么 Facebook 会使用从您的站点获取的 og:metadata 填充该状态,以在我的状态消息下提供缩略图/标题/和链接(等)。跨度>
  • @potench 感谢您提供的有用信息。
  • 看来命名空间的创建者不需要xmlns属性来解析数据。但回到最初的问题:html5 规范是否允许使用 xmlns:ex 属性?答案似乎是否定的。因此,html5 中唯一的数据标记类型(除了 data-ex)是微数据。我对 FB 开放图形数据的解决方案是仅嗅探用户代理并将该数据仅回显到 FB。

标签: html facebook-opengraph xml-namespaces


【解决方案1】:

这似乎只是一个使用 Facebook 自己的 HTML 模板为其开放图元标记提供上下文的示例。我认为您不需要遵循他们的文档类型(或标题),因为它只是为 &lt;meta property="og:..."&gt; 属性示例提供上下文。

我从未更改过文档类型声明,也没有遇到过问题,我只是使用标准 HTML5 &lt;!doctype html&gt; 声明。

您可以使用(打开图形调试器)[http://developers.facebook.com/tools/debug] 来检查您的工作。这是一个使用 HTML5 doctype checked against the open-graph debugger 的示例。

尽管加载的页面使用标准的 HTML5 文档类型,但它仍然可以正确找到打开的图形对象:&lt;!doctype html&gt;

【讨论】:

    猜你喜欢
    • 2011-08-08
    • 2011-09-16
    • 2011-11-27
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    相关资源
    最近更新 更多