如何从多个其他项目中引用另一个项目声明,以满足schema.org?
How to refer to another item declaration from multiple other items, to satisfy schema.org?
经过大量搜索如何正确引用一个项目后,我发现 this minimal example 展示了如何将 Organization
项目引用为 branchOf
Hotel
项。它在 Organization
上定义了属性 itemprop="branchOf"
,它在引用它后成为 Hotel
项目的 属性。
<div itemprop="branchOf" itemscope itemtype="http://schema.org/Organization" id="schema-organization">
<h1 itemprop="name">The Hotel Chain</h1>
</div>
<div itemscope itemtype="http://schema.org/Hotel" itemref="schema-organization">
<h2 itemprop="name">Hotel Location 1</h2>
</div>
该示例有效。
但现在我需要添加一个适用于 Organization
的 Person
。我可以通过在 Organization
上定义 itemprop="worksFor"
,然后从我的 Person
中引用它来使用相同的概念,如下所示:
<div itemprop="worksFor" itemscope itemtype="http://schema.org/Organization" id="schema-organization">
<h1 itemprop="name">The Hotel Chain</h1>
</div>
<div itemscope itemtype="http://schema.org/Hotel" itemref="schema-organization">
<h2 itemprop="name">Hotel Location 1</h2>
</div>
<div itemscope itemtype="http://schema.org/Person" itemref="schema-organization">
<div itemprop="name">John Doe</div>
</div>
并且 Person
正确获取其 worksFor
属性以在此处显示 Organization
。
但现在我必须从 Hotel
中删除 itemref
,否则它会抱怨它无法识别 worksFor
属性。如果我这样做,Hotel
不再以任何方式引用 Organization
,因此它不是它的一个分支。
所以看起来这是一个非此即彼的情况。
我怎样才能同时申报这两者? Person
需要为 Organization
工作,Hotel
需要成为 Organization
的分支。
您可以使用 itemid 并从每个实体引用相同的 itemid。例如
<div itemscope itemtype="http://schema.org/Organization" itemid="#organization">
<h1 itemprop="name">The Hotel Chain</h1>
</div>
<div itemscope itemtype="http://schema.org/Hotel" >
<h2 itemprop="name">Hotel Location 1</h2>
<meta itemprop="branchOf" itemscope itemid="#organization"/>
</div>
<div itemscope itemtype="http://schema.org/Person">
<div itemprop="name">John Doe</div>
<meta itemprop="worksFor" itemscope itemid="#organization"/>
</div>
经过大量搜索如何正确引用一个项目后,我发现 this minimal example 展示了如何将 Organization
项目引用为 branchOf
Hotel
项。它在 Organization
上定义了属性 itemprop="branchOf"
,它在引用它后成为 Hotel
项目的 属性。
<div itemprop="branchOf" itemscope itemtype="http://schema.org/Organization" id="schema-organization">
<h1 itemprop="name">The Hotel Chain</h1>
</div>
<div itemscope itemtype="http://schema.org/Hotel" itemref="schema-organization">
<h2 itemprop="name">Hotel Location 1</h2>
</div>
该示例有效。
但现在我需要添加一个适用于 Organization
的 Person
。我可以通过在 Organization
上定义 itemprop="worksFor"
,然后从我的 Person
中引用它来使用相同的概念,如下所示:
<div itemprop="worksFor" itemscope itemtype="http://schema.org/Organization" id="schema-organization">
<h1 itemprop="name">The Hotel Chain</h1>
</div>
<div itemscope itemtype="http://schema.org/Hotel" itemref="schema-organization">
<h2 itemprop="name">Hotel Location 1</h2>
</div>
<div itemscope itemtype="http://schema.org/Person" itemref="schema-organization">
<div itemprop="name">John Doe</div>
</div>
并且 Person
正确获取其 worksFor
属性以在此处显示 Organization
。
但现在我必须从 Hotel
中删除 itemref
,否则它会抱怨它无法识别 worksFor
属性。如果我这样做,Hotel
不再以任何方式引用 Organization
,因此它不是它的一个分支。
所以看起来这是一个非此即彼的情况。
我怎样才能同时申报这两者? Person
需要为 Organization
工作,Hotel
需要成为 Organization
的分支。
您可以使用 itemid 并从每个实体引用相同的 itemid。例如
<div itemscope itemtype="http://schema.org/Organization" itemid="#organization">
<h1 itemprop="name">The Hotel Chain</h1>
</div>
<div itemscope itemtype="http://schema.org/Hotel" >
<h2 itemprop="name">Hotel Location 1</h2>
<meta itemprop="branchOf" itemscope itemid="#organization"/>
</div>
<div itemscope itemtype="http://schema.org/Person">
<div itemprop="name">John Doe</div>
<meta itemprop="worksFor" itemscope itemid="#organization"/>
</div>