主体中的Schema.org itemscope是什么?

4

我在Microdata / Schema.org方面还很新,所以仍在努力了解。 由于我了解到它都是关于在关系和引用中放置内容,那么是否将一个公司的整个网页放入一个itemscope中,通过添加到标签中是一个好(或坏)的想法呢?这样,您将获得以下结构:

<body itemscope itemtype="http://schema.org/BarOrPub">
    <header>
        <img itemprop="logo" src="logo.jpg" alt="Logo" />
        <h1 itemprop="name">The Bar</h1>
    </header>
    <p>Bla bla</p>
    <table itemscope itemtype="http://schema.org/OpeningHoursSpecification">
        <tr><th itemprop="dayOfWeek">Monday</th><td itemprop="opens">17:00-02:00</td></tr>
        <tr><th itemprop="dayOfWeek">Tuesday</th><td itemprop="opens">17:00-02:00</td></tr>
        <tr><th itemprop="dayOfWeek">Wednesday</th><td itemprop="opens">17:00-02:00</td></tr>
        <tr><th itemprop="dayOfWeek">Thursday</th><td itemprop="opens">17:00-02:00</td></tr>
        <tr><th itemprop="dayOfWeek">Friday</th><td itemprop="opens">17:00-02:00</td></tr>
    </table>
    <p>Bla bla</p>
    <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
        <span itemprop="streetAddress">straatnaam huisnummer</span>
        <span itemprop="addressLocality">Plaats</span>
    </div>
</body>

如果这是一个好主意,我可以像上面那样使用 itemtype “OpeningHoursSpecification”,还是需要将其作为 itemprop 的子级呢?

1个回答

7

是的,您可以使用 body(甚至是 html)元素。

也可以将项目(例如 OpeningHoursSpecification)添加为子项目。但请注意,只有在使用属性(itemprop)“链接”它们时(例如使用 address 属性链接 PostalAddress),这些项目才与父项目有关系。

因此,如果您想说明这是 BarOrPub 的 OpeningHoursSpecification,则应使用 openingHoursSpecification 属性:

<body itemscope itemtype="http://schema.org/BarOrPub">

  <table itemprop="openingHoursSpecification" itemscope itemtype="http://schema.org/OpeningHoursSpecification">
  </table>

  <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
  </div>

</body>

(我不确定并没有检查您对OpeningHoursSpecification的使用是否正确,但无论如何这都与本问题无关。)

谢谢!那么我可以从中学到,'Child' itemtypes总是需要在itemprop之前吗? - Toine
@Gooly:这不是必需的。但如果您不使用itemprop,则这些项之间没有关系。例如,请参见我在Webmasters SE上的答案的第二部分。 - unor
再次感谢。因此,这取决于几个因素,例如信息的结构,是否最好这样做。 - Toine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接