meta
标记实现对象属性,但给出的示例是具有基元类型(如Text
或Boolean
(的属性。假设我想显示一个图像网格,每个图像都是ImageObject
类型。copyrightHolder
属性本身是Organization
或Person
。如果我想包含组织的法定名称,我将如何仅使用元数据来做到这一点?
使用"常规"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>
唯一想到的是使用一组隐藏的span
或div
。
使用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.">