物品范围外的属性'假设属于' WebPage',但这会产生无效的微数据

时间:2014-03-14 21:19:02

标签: microdata schema.org

微数据允许使用itemprop但没有父itemscope的元素,只要它们被页面上某处的itemref引用即可。 (参见我的问题Is 'itemprop' without parent 'itemscope' valid? Does it create an item?)。

所以这个例子应该是有效的:

<body>

 <div itemprop="email" id="orphan">
   alice@example.com
 </div>

 <div itemscope itemtype="http://example.org/Person" itemref="orphan">
   <span itemprop="name">Alice</span>
 </div>

</body>

现在,当有人使用Schema.org词汇表时(在itemtype值中将“example”替换为“schema”),我的理解是此示例将不再有效,因为在{{ 3}}它说:

  

隐式假设每个网页都被声明为WebPage类型,因此可以使用该网页的各种属性,例如breadcrumb。如果指定了这些属性,我们建议使用显式声明,但如果在itemscope之外找到它们,则会假定它们与页面有关

因此,这意味着将创建以下项目和名称 - 值对:

Item <http://schema.org/Person>
  name: Alice
  email: alice@example.com 

Item <http://schema.org/WebPage>
  email: alice@example.com

但是http://schema.org/WebPage不能拥有email属性,因此这是无效的微数据,在本例中为http://schema.org/WebPage

  

[...]根据定义项目相关类型的规范,在此情况下允许的已定义属性名称

因此,the itemprop value has to be上的此声明,如果消费者和实施者尊重,如果itemprop的元素没有itemscope WebPage上不允许使用该属性。

这是正确的还是我错过了什么?

我该如何处理?忽略这个陈述? AFAIK Microdata不要求遵循这些“非正式规则”,对吗?

1 个答案:

答案 0 :(得分:1)

这些术语并不经常讨论,但有效性是一个相对的概念。根据特定规范的要求,文档有效或无效

在这种情况下,微数据规范没有说明WebPage,因此在隐式WebPage项中包含itemprop对文档的有效性没有影响Microdata规范。

另一方面,对于schema.org WebPage规范,您的文档或至少其中的WebPage项将无效。

这对您来说是否重要是您的选择。实际上只有两个实际结果。页面微数据的使用者可以创建WebPage项,也可以不创建WebPage项。消费者极不可能拒绝创建WebPage项目,因为存在额外的模式外迭代,否则它将创建WebPage项目。

这最终是有效性的。它是建立一种文档的生产者和消费者都理解的共同语言。如果消费者理解生产者提供的信息,那么对任何特定规范的有效性规则的技术违反都不会产生什么影响。