使用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>
或者这是接近它的错误方式而events
是product
的孩子吗?
<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
微数据中是正确的,因为它只有一个可能的日期/时间选项?
答案 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>