在带有链接的表中使用containsInPlace属性

时间:2018-03-26 23:53:42

标签: html schema.org microdata

我有一张城市内的村庄表。我计划在每个村庄添加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有关吗?​​

1 个答案:

答案 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。)