微数据允许元素itemprop
但没有父母itemscope
,只要它们被引用itemref
页面上的某处。 (看我的问题没有父级“itemscope”的“itemprop”是否有效?它会创建一个项目吗? https://stackoverflow.com/q/21369695/1591669).
所以这个例子应该是有效的:
<body>
<div itemprop="email" id="orphan">
[email protected] /cdn-cgi/l/email-protection
</div>
<div itemscope itemtype="http://example.org/Person" itemref="orphan">
<span itemprop="name">Alice</span>
</div>
</body>
现在,当有人使用 Schema.org 词汇表时(将“example”替换为“schema”)itemtype
值),据我所知,这个例子将不再有效,因为http://schema.org/WebPage http://schema.org/WebPage它说:
每个网页都隐式假定被声明为 WebPage 类型,因此该网页的各种属性,例如breadcrumb
可能用过了。如果指定了这些属性,我们建议显式声明,但如果在 itemscope 之外找到它们,则将假定它们与页面有关
因此,这意味着将创建以下项目和名称-值对:
Item <http://schema.org/Person>
name: Alice
email: [email protected] /cdn-cgi/l/email-protection
Item <http://schema.org/WebPage>
email: [email protected] /cdn-cgi/l/email-protection
But http://schema.org/WebPage http://schema.org/WebPage不能有email
属性,因此这是无效的微数据,如本例所示the itemprop值必须是 http://www.w3.org/TR/2013/NOTE-microdata-20131029/#names:-the-itemprop-attribute
[...] 根据定义项目相关类型的规范,在这种情况下允许定义属性名称
所以这个声明http://schema.org/WebPage http://schema.org/WebPage,如果受到消费者和实现者的尊重,在元素具有的情况下将导致无效的微数据itemprop
has no itemscope
parent and该物业不允许WebPage
.
这是正确的还是我错过了什么?
我该如何处理这个问题?忽略这个声明? AFAIK Microdata 不需要遵循那些“非正式规则”,对吗?
人们不经常用这些术语来讨论它,但有效性是一个相对的概念。文件有效或无效only关于特定规范的要求。
在这种情况下,微数据规范没有提及 WebPage,因此将 itemprop 包含在隐式 WebPage 项中不会影响文档相对于 Microdata 规范的有效性。
另一方面,对于 schema.org WebPage 规范,您的文档或至少其中的 WebPage 项目将无效。
这对你是否重要是你的选择。实际上只有两个实际结果。页面微数据的使用者可以创建网页项,也可以不创建网页项。消费者不太可能因为存在额外的架构外 itemprop 而拒绝创建网页项,否则消费者会在其中创建网页项。
这就是有效性的最终含义。它的目的是建立一种文档生产者和消费者都能理解的通用语言。只要消费者了解生产商提供的信息,技术上违反任何特定规范的有效性规则的后果就很小。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)