XMLNS和搜索引擎的语义理解

时间:2013-05-25 16:04:35

标签: html5 xml-namespaces semantic-markup dublin-core

我在我的网站上使用了一堆语义标记,来自schema.org,Dublin Core,OGP,FBML,数据词汇。但是因为我使用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>

1 个答案:

答案 0 :(得分:2)

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

meta - name

您在<meta name="dcterms.title" lang="de-DE" content="Book-Title"/>中使用Dublin Core的情况很好,因为您在这里使用了registered HTML5 name value

带有schema.org词汇的微数据

您使用带有schema.org词汇表的Microdata很好,因为您指定了完整的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" />

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

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

或者您可以使用meta - name代替RDFa(与您使用Dublin Core dcterms.title的方式相同),因为og:title是已注册的HTML5 { {1}}值(如果你想在这里停止使用RDFa,取决于你的用例):

name