我有一张城市内的村庄表。我计划在每个村庄添加schema.org微数据,以指定他们与父母城市的关系。由于我正在学习微数据,我对containedInPlace属性如何与Place相关工作感到困惑,尤其是在表格链接中。这种语法在语义上是否正确?:
<article itemscope itemtype='http://schema.org/Place'>
<h1><span itemprop='name'>San Andres</span></h1>
<table>
<thead>
<tr>
<th>Village name</th>
<th>Description</th>
<th>Other info</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<a itemprop='containedInPlace' href='/santa-ana.html'>Santa Ana</a>
</td>
<td>Description</td>
<td>Other info</td>
</tr>
<tr>
<td>
<a itemprop='containedInPlace' href='/santiago.html'>Santiago</a>
</td>
<td>Description</td>
<td>Other info</td>
</tr>
</tbody>
</table>
</article>
由于itemscope itemtype='http://schema.org/Place'
被放置在包含该表的<article>
标记中,包含itemprop='containedInPlace'
的村庄现在与城市San Andres
有关吗?
答案 0 :(得分:1)
对于Microdata,指定哪些HTML元素(as long as you use itemprop
on elements with suitable datatype)无关紧要。因此,使用table
代替例如div
等。
您的示例传达了“San Andres”地点是由/santa-ana.html
和/santiago.html
标识的两个地方的一部分。如果您想传达这两个地方是圣安德烈斯的一部分,您必须使用财产containsPlace
而不是containedInPlace
。
如果您想在该页面上提供有关这些地点的更多数据(例如,他们的名字),您必须提供项目(itemscope
)而不仅仅是网址值。
<tr itemprop="containsPlace" itemscope itemtype="http://schema.org/Place">
<td>
<a itemprop="url" href="/santa-ana.html"><span itemprop="name">Santa Ana</span></a>
</td>
<td itemprop="description">Description</td>
<td>Other info</td>
</tr>
(并且始终使用最具体的类型。例如,对于城市,您应该使用City
而不是父类型Place
。)