互连 "Organization" 和 "worksFor" 微数据?

Interlinking "Organization" and "worksFor" microdata?

我们有一个网站,其联系页面由两部分组成:第一,有关组织的信息(名称、phone、电子邮件、注册码),第二,所有工作人员的联系人列表(包括姓名、职位、电子邮件和 phone 号码)。

我可以毫无问题地将微数据添加到各个领域。但我也想将组织和个人微数据相互链接起来。因此,对于 Persons,"worksFor" itemprop 信息直接取自 Organization itemprop="name",随后,在 Organization 下,workers 被列为 "employees" 或 "worker" itemprop.

<div itemscope itemtype="http://schema.org/Organization">
    <span itemprop="name">Organization XXX</span>
    <span itemprop="telephone">1234567</span>
    <span itemprop="email">orgemail@org.org</span>
    <span id="worklink" itemprop="worksfor">Organization YYY</span>
</div>
    <table>
        <tr itemscope itemtype="http://schema.org/Person" itemref="worklink">
            <td itemprop="name">Helmut York</td>
            <td itemprop="jobTitle">Analyst</td>
            <td itemprop="email">helmut@org.org</td>
        </tr>

        <tr itemscope itemtype="http://schema.org/Person" itemref="worklink">
            <td itemprop="name">Julius Xing</td>
            <td itemprop="name">Analyst</td>
            <td itemprop="email">julius@org.org</td>
        </tr>
    </table>

但是,问题在于使用此代码,组织也被赋予 "worksFor" itemprop,当然,这会在 Google 结构化数据测试工具中产生错误。任何想法如何解决这个问题? itemref 属性在 schema.org.

中的记录非常少

您可以使用 itemref 属性 执行此操作,但您必须将 id="worklink"itemprop="worksFor"¹ 移动到应该添加为 属性 值。

所以它可能看起来像这样:

<div itemprop="worksFor" itemscope itemtype="http://schema.org/Organization" id="worklink">
</div>

<table>
  <tr itemscope itemtype="http://schema.org/Person" itemref="worklink"></tr>
  <tr itemscope itemtype="http://schema.org/Person" itemref="worklink"></tr>
</table>

但现在您必须确保 Organization 项目没有其他微数据项目作为父项,否则它也会通过 worksFor 属性 添加到该项目.

itemref 的替代方法是使用 itemid 属性并将组织 URI 引用为值,但可能并非每个消费者都支持它。

¹ 请注意,URI 是 case-sensitive。 属性 是 ẁorksFor,而不是 worksfor