如何在元数据中实现Schema.org属性


Schema.org描述了如何使用meta标记实现对象属性,但给出的示例是具有基元类型(如TextBoolean(的属性。假设我想显示一个图像网格,每个图像都是ImageObject类型。copyrightHolder属性本身是OrganizationPerson。如果我想包含组织的法定名称,我将如何仅使用元数据来做到这一点?

使用"常规"HTML元素,我会写:

<span itemprop="copyrightHolder" itemscope itemtype="http://schema.org/Organization">
<span itemprop="legalName">ACME Inc.</span>
</span>

这看起来显然不对:

<meta itemprop="copyrightHolder" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="legalName" content="ACME Inc.">
</meta>

唯一想到的是使用一组隐藏的spandiv

使用Microdata,如果您想提供在页面上不可见的结构化数据,可以使用以下元素:

  • link(带itemprop(用于URL值
  • meta(带itemprop(用于非URL的值
  • div/项目的span(带itemscope(

所以你的例子可能是这样的:

<div itemscope itemtype="http://schema.org/ImageObject">
<div itemprop="copyrightHolder" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="legalName" content="ACME Inc." />
</div>
</div>

如果您想在head元素中提供整个结构化数据(其中不允许使用div/span(,请参阅此答案。如果只想在head元素中提供一些属性,可以使用itemref属性。

也就是说,如果你想以这种隐藏的方式提供大量数据,你可能需要考虑使用JSON-LD而不是Microdata(参见比较(。

我又在读《入门》,注意到2b显示

浏览schema.org类型时,您会注意到许多属性都有"预期类型"。这意味着属性的值本身可以是嵌入项(参见第1d节:嵌入项(。但这不是一个要求——只包含常规文本或URL是可以的。

所以我认为只使用是可以的

<meta itemprop="copyrightHolder" content="ACME Inc.">

最新更新