3

我正在尝试将 Schema.org 标记添加到我的 HTML 中。具体来说,我想根据这些示例标记一些事件。尽管这些示例很有帮助,但它们也有些不完整,例如,没有演示表演者/表演者属性的使用。

在我的特定情况下,每个事件都表示为表格行。在添加 Schema.org 属性之前,标记如下所示:

    <tr id="459">

        <td class="nameCol">
            <a href="/summer-festivals/show/459/film/dublin-chinese-film-festival-2013">Dublin Chinese Film Festival 2013</a>
        </td>
        <td class="typeCol">Film</td>
        <td class="startCol">1 Feb 2013</td>
        <td class="endCol">9 Feb 2013</td>
        <td class="addressCol">Lighthouse Cinema, Smithfield Square, Dublin 7</td>
        <td class="countryCol">Ireland</td>                       
    </tr>

在第一次尝试添加 Schema.org 属性后,它看起来像这样:

   <tr id="459" itemscope itemtype="http://schema.org/Event">

        <td class="nameCol">
            <a href="/summer-festivals/show/459/film/dublin-chinese-film-festival-2013" itemprop="url">Dublin Chinese Film Festival 2013</a>
        </td>
        <td class="typeCol">Film</td>

        <td class="startCol">
            <meta itemprop="startDate" content="2013-02-01">
            1 Feb 2013
        </td>

        <td class="endCol">
            <meta itemprop="endDate" content="2013-02-09">
            9 Feb 2013
        </td>

        <span itemprop="location" itemscope itemtype="http://schema.org/Place">

            <span itemprop="geo" itemscope itemtype="http://schema.org/GeoCoordinates">
                <meta itemprop="latitude" content="53.3482"/>
                <meta itemprop="longitude" content="-6.27794"/>
            </span>

            <td class="addressCol">Lighthouse Cinema, Smithfield Square, Dublin 7</td>

            <span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
                <td class="countryCol" itemprop="addressCountry">Ireland</td>
            </span>
        </span>
    </tr>

这样做有几个问题:

  1. 在 Schema.org 示例中,每个事件的根始终是 a <div>,但在我的情况下是 a <tr>,这是否允许?

  2. 我想在 Schema.org 标记中包含一些实际上并未向用户显示的数据(例如纬度、经度)。目前,我通过<span>在表格单元格之间添加额外的 s 来做到这一点,但这不是有效的 HTML。

  3. 同样,我需要将国家/地区单元格包装在 a<span>中,以便从 Schema.org POV 中正确标记它。但是标记随后从 HTML POV 变为无效。


关于 1:您可以在任何HTML 元素上使用 Microdata 属性。所以是的,你可以使用这些td元素。这些示例总是使用div/span因为它总是有效的。使用现有标记而不是添加新的div/span元素是一种很好的做法。

关于2:也许该itemref属性可以在这里有所帮助?

[…] 它只是一种句法结构,可帮助作者向要注释的数据不遵循方便的树形结构的页面添加注释。例如,它允许作者在表格中标记数据,以便每列定义一个单独的项目,同时将属性保留在单元格中。

关于3:你为什么不span包装td

<td class="countryCol" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
  <span itemprop="addressCountry">Ireland</span>
</td>
4

1 回答 1

1

关于 1:您可以在任何HTML 元素上使用 Microdata 属性。所以是的,你可以使用这些td元素。这些示例总是使用div/span因为它总是有效的。使用现有标记而不是添加新的div/span元素是一种很好的做法。

关于2:也许该itemref属性可以在这里有所帮助?

[…] 它只是一种句法结构,可帮助作者向要注释的数据不遵循方便的树形结构的页面添加注释。例如,它允许作者在表格中标记数据,以便每列定义一个单独的项目,同时将属性保留在单元格中。

关于3:你为什么不span包装td

<td class="countryCol" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
  <span itemprop="addressCountry">Ireland</span>
</td>
于 2013-02-02T02:09:02.930 回答