Schema.org描述了如何使用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
。
答案 0 :(得分:2)
使用微数据,如果您想提供页面上不可见的结构化数据,则可以使用以下元素:
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
),请参见this answer。如果只想在head
元素中提供一些属性,则可以make use of the itemref
attribute。
也就是说,如果您想以隐藏的方式提供大量数据,则可能要考虑使用JSON-LD而不是微数据(see a comparison)。
答案 1 :(得分:0)
我再次阅读《入门指南》,发现2b指出
浏览schema.org类型时,您会注意到许多属性具有“预期类型”。这意味着该属性的值本身可以是一个嵌入项(请参见第1d节:嵌入项)。但这不是必须的-可以只包含常规文本或URL。
所以我认为只用一次就可以了
<meta itemprop="copyrightHolder" content="ACME Inc.">