如何在HTML5微数据中使用多个词汇表(与schema.org不同的词汇表)

时间:2014-02-13 14:57:49

标签: microdata schema.org vocabulary

说我有这个有效的微数据增强HTML代码段:

<div itemscope itemtype="http://schema.org/Corporation">
  <div itemprop="legalName">Example</div>
</div>

(我已经使用谷歌的结构化数据测试工具对此进行了测试。)

现在我想添加一个在schema.org中没有的属性,但是在另一个词汇中(在这种情况下是W3C注册的Org Vocab [1]):

<div itemscope itemtype="http://schema.org/Corporation">
  <div itemprop="legalName">Example</div>
  <div itemprop="http://www.w3.org/ns/regorg#registration">XXX</div>
</div>

至少谷歌声称:

Error: Page contains property "http://www.w3.org/ns/regorg#registration" which is not part of the schema.

我可以移除itemtype,但我不想要这个,因为它失去了保真度[2] 没有其他办法吗?使用RDFa,这没有问题。

修改

我发现[3]建议复制内容,但这显然不是一个好的解决方案。

[1] http://www.w3.org/TR/vocab-regorg/#ref_rov_registration

[2] Using itemprop without itemtype

[3] http://www.w3.org/wiki/Mixing_HTML_Data_Formats#Mixing_Vocabularies_using_Repeated_Content

1 个答案:

答案 0 :(得分:0)

Microdata(W3C Note)定义which values itemprop may have

使用绝对URI作为itemprop始终允许。

除非词汇表(如schema.org)指定在此上下文中使用http://www.w3.org/ns/regorg#registration值(“[......]在这种情况下允许通过词汇表规范”),否则它将是

  

[...]专有项目属性名称(即作者出于私人目的使用的名称,未在公共规范中定义)

Google的结构化数据测试工具不是验证器。它主要关注的是报告有关Google私有使用schema.org的警告,这就是为什么您也可能会收到有关缺少“必需”属性的警告(但schema.org doesn’t define any required properties除外)。

FWIW,Yandex’ Structured data validator未报告使用绝对URI作为值的问题。