如何将QuantitativeValue添加到Product而不是Offer?

时间:2014-03-16 18:46:00

标签: html5 product microdata schema.org

我的网页结构如下:

<div id="product" itemscope itemtype="http://schema.org/Product">
<h1 itemprop="name">Product name</h1>
<!-- ... -->
<table itemprop="offers" itemscope itemtype="http://schema.org/Offer" id="product_description">
<tr><th>Weight:</th><td itemprop="weight" itemscope itemtype="http://schema.org/QuantitativeValue">3.75g</td></tr>
<tr><th>Width:</th><td itemprop="width" itemscope itemtype="http://schema.org/QuantitativeValue">20mm</td></tr>
<tr><th>Height:</th><td itemprop="height" itemscope itemtype="http://schema.org/QuantitativeValue">20mm</td></tr>
<tr><th>Availability:</th><td><link itemprop="availability" href="http://schema.org/InStock"/>available</td></tr>
<!-- ... -->

我希望将weightwidthheight附加到Product范围而不是Offer

我如何实现这一目标?

2 个答案:

答案 0 :(得分:2)

您可以使用itemref attributes将这些属性添加到Product这仍然无效,因为它们仍会适用于Offer (但此类型不允许使用这些属性)。

所以你必须将它们移出Offer的范围。

有多种方法可以做到这一点。如果没有看到完整的HTML,就无法确定哪一个有效或哪个最好。

如果表格中不包含任何其他内容,您可以使用:

<table>
  <tr><th>Weight:</th><td itemprop="weight" itemscope itemtype="http://schema.org/QuantitativeValue">3.75g</td></tr>
  <tr><th>Width:</th><td itemprop="width" itemscope itemtype="http://schema.org/QuantitativeValue">20mm</td></tr>
  <tr><th>Height:</th><td itemprop="height" itemscope itemtype="http://schema.org/QuantitativeValue">20mm</td></tr>
  <tr itemprop="offers" itemscope itemtype="http://schema.org/Offer"><th>Availability:</th><td><link itemprop="availability" href="http://schema.org/InStock"/>available</td></tr>
</table>

如果您有更多行应属于Offer,则可以使用tbody element对这些行进行分组:

<table>
  <tbody>
    <tr><th>Weight:</th><td itemprop="weight" itemscope itemtype="http://schema.org/QuantitativeValue">3.75g</td></tr>
    <tr><th>Width:</th><td itemprop="width" itemscope itemtype="http://schema.org/QuantitativeValue">20mm</td></tr>
    <tr><th>Height:</th><td itemprop="height" itemscope itemtype="http://schema.org/QuantitativeValue">20mm</td></tr>
  </tbody>
  <tbody itemprop="offers" itemscope itemtype="http://schema.org/Offer">
    <tr><th>Availability:</th><td><link itemprop="availability" href="http://schema.org/InStock"/>available</td></tr>
  </tbody>
</table>

如果行是混合的(例如,Product的前3个,Offer的1个,再次Product的一个),则必须使用{{1}并省略嵌套:

itemref

答案 1 :(得分:0)

你必须“保护&#39;通过添加额外的包装&#39; itemscope&#39;来自Offer的产品itemprop(s)。 &安培;通过使用产品上的引用将itemprop分配给Product; &#39;的itemref&#39; id(s)列表和目标标签上的id。

您还必须将QuantitativeValue拆分为unitCode&amp;值。

Google提供了一个测试工具https://developers.google.com/structured-data/testing-tool/

可以在http://wiki.goodrelations-vocabulary.org/Documentation/UN/CEFACT_Common_Codes

找到unitCodes列表
<div id="product" itemscope itemtype="http://schema.org/Product" itemref="weight width height">
  <h1 itemprop="name">Product name</h1>

  <table itemprop="offers" itemscope itemtype="http://schema.org/Offer">
    <tr>
      <th>Weight:</th>
      <td itemscope>
        <span id="weight" itemprop="weight" itemscope itemtype="http://schema.org/QuantitativeValue">
          <span itemprop="value">3.75</span>
          <abbr itemprop="unitCode" title="grams" content="GRM" >g</abbr>
        </span>
      </td>
    </tr>
    <tr>
      <th>Width:</th>
      <td itemscope>
        <span id="width" itemprop="width" itemscope itemtype="http://schema.org/QuantitativeValue">
          <span itemprop="value">20</span>
          <abbr itemprop="unitCode" content='MMT' title='millimetres' >mm</abbr>
        </span>

      </td>
    </tr>
    <tr>
      <th>Height:</th>
      <td itemscope>
        <span id="height" itemprop="height" itemscope itemtype="http://schema.org/QuantitativeValue">
          <span itemprop="value">20</span>
          <abbr itemprop="unitCode" content='MMT' title='millimetres' >mm</abbr>
        </span>
      </td>
    </tr>
    <tr>
      <th>Availability:</th>
      <td><link itemprop="availability" href="http://schema.org/InStock"/>available</td>
    </tr>
     ...
  </table>
</div>