schema.org文档部分无效吗?

Joh*_*sen 6 html5 microdata schema.org

我现在正在编写HTML/CSS/JS大约两年,并决定通过使用微数据/ RDF来更加专注于增强我的标记.

通过进一步的调查和查看这个东西是如何在野外处理我遇到了YouTube,看到他们在div块中使用元标记来描述他们的视频并发现它很奇怪,因为我从未在旁边使用过meta标签在文件的头部内.

div-block有一个itemtype来声明它正在使用的方案,所以我检查了给定的页面(schema.org),并通过在他们的文档中挖掘以下部分找到:

3C.缺失/隐含信息:将元标记与内容一起使用

有时,网页上的信息对于标记很有价值,但由于信息在页面上的显示方式,因此无法标记信息.[...]

在这些情况下,请使用元标记和content属性来指定信息.考虑这个例子 - 该图像显示用户获得4星评分:

<div itemscope itemtype="http://schema.org/Offer">
  <span itemprop="name">Blend-O-Matic</span>
  <span itemprop="price">$19.95</span>
  <img src="four-stars.jpg" />
  Based on 25 user ratings
</div>
Run Code Online (Sandbox Code Playgroud)

这里再次举例说明了评级信息.

<div itemscope itemtype="http://schema.org/Offer">
  <span itemprop="name">Blend-O-Matic</span>
  <span itemprop="price">$19.95</span>
  <div itemprop="reviews" itemscope itemtype="http://schema.org/AggregateRating">
    <img src="four-stars.jpg" />
    <meta itemprop="ratingValue" content="4" />
    <meta itemprop="bestRating" content="5" />
    Based on <span itemprop="ratingCount">25</span> user ratings
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

资料来源:http://schema.org/docs/gs.html#advanced_missing

现在,它似乎像最佳实践(有时)添加微这样,但还是觉得奇怪,我使用元了头块的,所以我查了一下meta标签W3和实现其中的感觉是从哪里来的.

4.2.5元元素

...

可以使用此元素的上下文:

  • 如果字符集属性存在,或者如果该元素的HTTP的当量属性是编码声明状态:在元素.
  • 如果http-equiv属性存在但不在编码声明状态中:在head元素中.
  • 如果http-equiv属性存在但不在Encoding声明状态中:在作为head元素的子元素的noscript元素中.
  • 如果存在name属性:预期元数据内容.

...

必须指定其中一个名称,http-equiv,charset属性.

如果任一名称HTTP-当量指定,则内容属性必须同时指定.否则,必须省略.

资料来源:http://www.w3.org/TR/html5/document-metadata.html#the-meta-element

现在我不知道该怎么想,因为schema.org给出的文档实际上忽略了w3的建议.

因此,在我真正开始做错之前,我要求更有经验的人回答这个问题.

迎接JD.

Alo*_*hci 7

是啊.这有点复杂.你坐得舒服吗?然后我会开始......

Microdata首次出现在现在称为HTML Living标准的内容中,作为其中不可或缺的一章.这是WHATWG制作的HTML规范.当W3C HTML5草稿自动采取相同的更改时,Microdata也出现在该标准中.然而,W3C的人们认为它与他们已经工作了一段时间的现有标准RDFa相冲突并且竞争.他们觉得在主要的HTML5标准文档中使用Microdata,而RDFa是独立的是不公平的,所以Microdata被W3C移到了一个单独的标准

HTML生活标准(静止)和W3C微数据标准(直到最近)都明确指出该<meta>元素在<body>且仅当它包含itemprop属性和content属性时才有效,并且没有其他<meta>元素特定属性.(例如,它不能含有http-equivname属性,但idclass都OK.)

然而,最近,已经确定有效性要求在主要的W3C HTML规范中更好,而不是微数据规范.因此,实际要求已经从微数据规范中删除,尽管仍然有几个<meta>元素的例子被使用<body>.

这一切都发生在HTML5规范修复之后 - 实际上现在只能进行澄清和错误修复 - 所以有效性信息被转移到W3C HTML5.1规范

这说明了有效性的要求,使<meta><body>有效.它说(见最后一个要点):

4.2.5元元素

可以使用此元素的上下文:

  • 如果存在charset属性,或者元素的http-equiv属性处于Encoding声明状态:head元素中.
  • 如果http-equiv属性存在但不在编码声明状态中:在head元素中.
  • 如果http-equiv属性存在但不在Encoding声明状态中:在作为head元素的子元素的noscript元素中.
  • 如果存在name属性:预期元数据内容.
  • 如果存在itemprop属性:预期元数据内容.
  • 如果存在itemprop属性:预期使用短语内容.

请注意,该<link>元素也以类似的方式扩展.

更新:

正如评论中的unor音符所述,meta元素对"元素可以使用的上下文:"的更改没有进入HTML 5.1推荐标准,它们也没有恢复到5.2或5.3.

它们现在出现在7.2节内容模型的单独的W3C微数据规范中,其中第4点说:

如果itemprop属性存在于链接或元元素上,则该元素是流内容和短语内容,并且可以在期望短语内容的地方使用.