适合Google Schema的格式?

时间:2013-07-23 04:21:03

标签: schema.org

我一直在尝试使用Google Schema,我看了几个代码生成器,它们的设计各不相同。我正在使用的链接来获取这些示例的信息:http://schema.org/Book

1)什么时候使用itemscope itemtype =“someSchemeURL.org”或实际的href? 例如:

<div itemprop="author" itemscope itemtype="http://schema.org/Person">
or
<div itemprop="bookFormat" href="http://schema.org/bookFormatType">

第二个例子甚至不是有效的HTML,因为div上不接受href属性。

2)对于上面的例子,第一列总是一个itemprop而第二列总是itemscope项类型吗?

3)如果没有指定itemscope itemtype,则itemprop默认为父itemscope项类型吗? 例如:

<div itemscope itemtype="http://schema.org/Book">
    <div class="book" itemprop="name"></div>
    <div itemprop="author" itemscope itemtype="http://shema.org/Person">
        <div class="author" itemprop="name"></div>
    </div>
</div>
The .author class will result in the name attributed to "author"
The .book class will result in the name attributed to "book"

所以这意味着虽然多个itemprop具有相同的名称,但是itemprop始终适用于父元素,对吗?

4)在何处指定何时使用meta,link,span或div?或者这取决于偏好? 例如:

<div>
    <meta itemprop="datePublished" content="2013-07-01">
    Some text
</div>
<div>
    Some text
    <link itemprop="bookFormat" href="http://schema.org/bookFormatType">Ebook
</div>

第二个例子是无效的,我知道,但它是一个代码生成器的例子。那个特定的生成器会产生无效的代码,所以我知道不会使用它,但是他们在哪里使用链接标签(虽然不正确)?

1 个答案:

答案 0 :(得分:4)

这些文档几乎可以回答您的所有问题。也许你已经看过他们,但以防万一。

所以问题的答案就会出现:

1.第一个是正确的。官方微数据规范告诉我们

  

Microdata最有用,当它用于上下文时   其他作者和读者能够合作,以获得新的用途   标记。

     

为此,有必要为每个项目提供一个类型,例如   “http://example.com/person”或“http://example.org/cat”,或   “http://band.example.net/”。类型被标识为URL。

     

项目的类型作为itemtype属性的值给出   与itemscope属性相同的元素。

实施例

<section itemscope itemtype="http://example.org/animals#cat">
 <h1 itemprop="name">Hedral</h1>
 <p itemprop="desc">Hedral is a male american domestic
 shorthair, with a fluffy black fur with white paws and belly.</p>
 <img itemprop="img" src="hedral.jpeg" alt="" title="Hedral, age 18 months">
</section>

2.No。 Itemprop 用于表示某个实体的属性。 Itemscope - 实体范围。和 itemtype - 实体的类型。这些是具有不同含义的不同标签,可以单独使用(至少在理论上)。什么文件说:

  

在高级别,微数据由一组名称 - 值对组成。   这些组称为项目,每个名称 - 值对都是一个属性。   项目和属性由常规元素表示。

     

要创建项目,请使用itemscope属性。

     

要向项添加属性,将在其中一个上使用itemprop属性   该项目的后代。

和例子

<div itemscope>
 <p>My name is <span itemprop="name">Elizabeth</span>.</p>
</div>

<div itemscope>
 <p>My name is <span itemprop="name">Daniel</span>.</p>
</div>

3.即使 itemscope itemtype itemprop 一起指定,它仍然是父类型的属性。在这种情况下,此属性是实体本身。你的例子是正确的:名字会转到不同的实体。以下是doc关于处理属性的内容。

  

由元素添加的名称 - 值对的属性值   itemprop属性是给出的第一个匹配的情况   以下列表:

     

如果元素还具有itemscope属性该值是项目   由元素创建。

     

如果元素是元元素该值是的值   element的content属性(如果有)或空字符串(如果有)   没有这样的属性。

     

如果元素是音频,嵌入,iframe,img,source,track或   视频元素该值是由此产生的绝对URL   解析元素的src属性相对于的值   设置属性时的元素,如果存在则为空字符串   没有这样的属性,或者解析它会导致错误。

     

如果元素是a,area或link元素,则值为   解析元素值的绝对URL   相对于属性时元素的href属性   set,如果没有这样的属性或者解析,则为空字符串   它会导致错误。

     

如果元素是对象元素该值是绝对URL   解析元素数据属性的值   相对于设置属性时的元素,或者为空   如果没有这样的属性,或者如果解析它导致一个   错误。

     

如果元素是数据元素该值是的值   element的value属性(如果有)或空字符串   否则。

     

如果元素是时间元素该值是元素的日期时间   值。

     

否则该值是元素的textContent。

     

网址属性元素是a,area,audio,embed,iframe,img,   链接,对象,源,轨道和视频元素。

4.保持优先权。搜索引擎有一般建议 - 标记消费者

  

但是,作为一般规则,您应该仅标记内容   访问网页但不隐藏内容的人可以看到   div或其他隐藏的页面元素。

Schema.org doc在隐藏元素的使用可能有意义时给出了很好的概述。

  

许多页面只能使用itemscope,itemtype和   itemprop属性(在第1节中描述)以及类型和   schema.org上定义的属性(在第2节中描述)。然而,   有时,项目属性很难让机器理解   没有额外的消歧。本节介绍如何操作   标记时提供机器可理解的信息版本   你的网页。

     

日期,时间和持续时间:使用时间标记   日期时间

     

枚举和规范引用:使用链接标记   href

     

缺少/隐含信息:将元标记与内容一起使用。

查看this link了解详情。