2

我在我的网站上使用了一堆语义标记,来自 schema.org、Dublin Core、OGP、FBML、data-vocabulary。但由于我使用 HTML5,W3C 验证器并不喜欢所有的XMLNS标记,比如

xmlns:schema="http://schema.org/"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:og="http://ogp.me/ns/book#"
xmlns:fb="http://www.facebook.com/2008/fbml"
xmlns:v="http://rdf.data-vocabulary.org/#"

问题是:如果我不使用XMLNS(或prefix:dcterms等),搜索引擎还会理解网站的语义吗?是的,Google Rich Snippets 测试工具仍然显示所有标记……但问题仍然存在。

使用这样的标记:

<html>
   <head>
     <meta property="og:title" content="Book-Title" />
      <meta name="dcterms.title" lang="de-DE" content="Book-Title"/>
   </head>
     <body>
      <div itemscope itemtype="http://schema.org/Book">
        <h2 itemprop="name">Book-Title</h2>
      </div>
   </body>
</html>
4

1 回答 1

2

您在此处使用三种不同的方式指定元数据:

meta-name

您在中使用 Dublin Core 没问题<meta name="dcterms.title" lang="de-DE" content="Book-Title"/>,因为您在这里使用了注册的 HTML5name

带有 schema.org 词汇的微数据

您可以将 Microdata 与 schema.org 词汇表一起使用,因为您指定了完整的 URI:

  <div itemscope itemtype="http://schema.org/Book">
    <h2 itemprop="name">Book-Title</h2>
  </div>

带有 OGP 词汇的 RDFa

由于<meta property="og:title" content="Book-Title" />您使用的是 RDFa 语法(因为该property属性),因此您需要指定 URI,就像og这里的前缀一样。

您可以使用完整的 URI 而不是前缀,例如:

<meta property="http://ogp.me/ns#title" content="Book-Title" />

您可以使用属性在htmlorhead元素中指定前缀:prefix

<head prefix="og: http://ogp.me/ns#">
  <meta property="og:title" content="Book-Title" />
</head>

或者您可以使用meta-name而不是 RDFa(与使用 Dublin Core 的方式相同dcterms.title),因为og:title它是一个已注册的 HTML5name值(取决于您的用例,如果您想在此处停止使用 RDFa):

<meta name="og:title" content="Book-Title" />
于 2013-06-05T15:20:19.503 回答