我想知道我是否可以在一个项目范围内使用多个项类型。例如,我现在有这个:
<body id="home" itemscope itemtype="http://schema.org/WebPage">
<div class="wrapper" itemscope itemtype="http://schema.org/ProfessionalService">
<p itemprop from professional service></p>
<p itemprop from web page></p>
</div>
</body>
当我在Google的Web开发人员工具中进行结构化数据测试时,它只会选择专业服务架构中的项目,并且忽略与网页架构相关的每个itemprop,并且不会将其识别为专业服务的一部分。我理解嵌套它们以及它为什么会发生。
我可以在项目范围内拥有多个项目类型吗?如:
<div class="wrapper" itemscope itemtype="http://schema.org/ProfessionalService http://schema.org/WebPage">
<p itemprop from professional service></p>
<p itemprop from web page></p>
</div>
答案 0 :(得分:6)
是的,您可以在一个itemtype
属性中使用多种项目类型,只要它们来自相同的词汇表。见Microdata: itemtype
:
itemtype
属性(如果已指定)必须具有一个值,该值是一组区分大小写的唯一空格分隔标记的无序集合,每个标记都是一个绝对URL的有效URL,并且所有其定义使用相同的词汇。
但请注意,然后需要为所有指定的项类型定义所有属性(itemprop
值)。因此,您不能说特定属性应仅属于特定项类型。
所以你仍然有同样的问题。在您的情况下,您应该使用正确的嵌套,或者您可以使用itemref
attribute将属性添加到页面上分散的相应项目。
FWIW,schema.org词汇表还定义了additionalType
property。这也可用于指定其他词汇表中的其他项类型。但是这不允许您使用附加项类型中的属性。