我的微数据没有验证:"指定了itemprop属性,但该元素不是任何项目的属性。"

时间:2017-06-20 11:29:45

标签: html5 schema.org microdata

我尝试使用Schema.org格式的某些微数据来验证网页,但我收到了很多类型的错误:

  

指定了itemprop属性,但该元素不是任何项目的属性。

这是我的标记的一般结构:

<div itemscope itemtype="http://schema.org/ProductModel" itemprop="mainEntity">
    <meta itemprop="productID" content="XYZ0001" />
    <meta itemprop="name" content="Product XYZ" />

    <table>
        <tr itemscope itemprop="additionalProperty" itemtype="http://schema.org/PropertyValue">
            <th><span itemprop="name">Foo</span></th>
            <td><span itemprop="value">1197</span></td>                                 
        </tr>
        <tr itemscope itemprop="additionalProperty" itemtype="http://schema.org/PropertyValue">
            <th><span itemprop="name">Bar</span></th>
            <td><span itemprop="value">Blah blah</span></td>                                    
        </tr>
    </table>
</div>

我使用ProductModeladditionalProperty,因为页面实体尚未拥有更合适的预定义类型(尚未)。我在标记中犯了明显的错误吗?

1 个答案:

答案 0 :(得分:1)

如果您在元素上指定itemprop,则必须有一个包含itemscope的父元素。

除非你的代码片段中没有显示这样的父元素,否则这可能是导致错误的行:

<div itemscope itemtype="http://schema.org/ProductModel" itemprop="mainEntity">

我假设您想传达此ProductModel是网页的主要实体,因此您可以指定:

<div itemscope itemtype="http://schema.org/WebPage">
  <div itemscope itemtype="http://schema.org/ProductModel" itemprop="mainEntity">
    <!-- … -->
  </div>
</div>

(或其中一个更具体的子类型,如果适用,例如ItemPage。)