用于显示具有多个日期/时间的事件的微数据格式

时间:2015-08-28 15:34:23

标签: schema.org microdata

使用Microdata,表示具有多个日期/时间预订选项的活动页面的最佳方式是什么?有时候活动页面只有一个预订选项,即一个设定的日期/时间,无可奈何,这是否需要不同的方法?

<section>
  <h1>Tennis Lessons</h1>
  <ol>
    <li>Book Tickets for
      <time datetime="2001-05-15 19:00">May 15</time>
    </li>
    <li>Book Tickets for
      <time datetime="2001-05-16 19:00">May 16</time>
    </li>
    <li>Book Tickets for
      <time datetime="2001-05-17 19:00">May 17</time>
    </li>
  </ol>
</section>

或者这是接近它的错误方式而eventsproduct的孩子吗?

<section itemscope itemtype="http://schema.org/Product">
  <h1 itemprop="name">Tennis Lessons</h1>
  <ol>
    <li itemscope itemtype="http://schema.org/Event">Book Tickets for
      <time datetime="2001-05-15 19:00">May 15</time>
    </li>
    <li itemscope itemtype="http://schema.org/Event">Book Tickets for
      <time datetime="2001-05-16 19:00">May 16</time>
    </li>
    <li itemscope itemtype="http://schema.org/Event">Book Tickets for
      <time datetime="2001-05-17 19:00">May 17</time>
    </li>
  </ol>
</section>

在这种情况下,在预订确认页面上,将整个部分包装在event微数据中是正确的,因为它只有一个可能的日期/时间选项?

1 个答案:

答案 0 :(得分:1)

Schema.org定义Event在某个时间发生&#34;&#34;。因此,每节课应由其自己的Event项表示。

如果您可以在自己的网页上预订课程,则可能需要使用offers property并为每个Event提供Offer

第二个代码段(Event项内的Product项)中的嵌套对微数据(example)没有影响。如果要连接微数据项,则必须使用属性(在itemprop属性内) 虽然您可以使用Product来表示您提供网球课程服务的事实,但似乎Product type缺少引用Event项目的合适属性。典型的解决方案是使用这两种类型,但在这方面Microdata相当limited(它对RDFa更好)。

如果要为所有事件提供相同的数据,可以使用itemref属性(而不是为每个事件重复该属性)。

所以基本结构可能就是这样:

<section>
  <h1>Tennis Lessons</h1>
  <p itemprop="description" id="event-desc">…</p>
  <ol>
    <li itemscope itemtype="http://schema.org/Event" itemref="event-desc">
      <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
      </div>
    </li>
    <li itemscope itemtype="http://schema.org/Event" itemref="event-desc">
      <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
      </div>
    </li>
  </ol>
</section>