【问题标题】:Is 'itemprop' without parent 'itemscope' valid? Does it create an item?没有父“itemscope”的“itemprop”是否有效?它会创建一个项目吗?
【发布时间】:2014-01-26 21:47:32
【问题描述】:

在以下示例中,Microdata 的 itemref 属性用于将 email 属性添加到 Person 项目(均来自虚构的 Microdata 词汇表)。

<body>

 <div itemscope itemtype="http://example.org/Person" itemref="orphan">
   <span itemprop="name">Alice</span>
 </div>

 <div id="orphan" itemprop="email">
   alice@example.com
 </div>

</body>

这是有效的微数据吗?

如果我正确理解"Associating names with items" algorithm,“itemrefed”属性不是移动而是复制,这使得这个“孤儿”itemprop 没有项父项。

three valid cases for itemprop values。以下似乎最接近:

如果项目不是类型化项目:不包含“.”的字符串(U+002E) 个字符,没有“:” (U+003A) 个字符。

(这意味着孤立的属性不是“定义的属性名称”,即它不再属于虚构的词汇表(只有“复制的”属性才属于)。)

但是:有no "item" involved, as there is no itemscope

所以你不能在没有父 itemscope 的情况下指定 itemprop 吗? Doesn‘t seem so:

每个 HTML 元素都可以指定一个 itemprop 属性 […]

我在微数据规范中遗漏了什么?

没有itemscope 父级的itemprop 是否会创建项目

【问题讨论】:

  • 有趣的问题。但我不明白为什么您认为 itemref 的属性被复制,而不是仅仅包含在集合中。你能澄清一下吗?
  • @Alohci:我可能在这里没有使用正确的术语(我不确定我是否理解“被包含在集合中”)。我的意思是:在将孤儿属性添加到 Person 项(通过 itemref)后,此属性不会“删除”,即它保留在其位置并且(除了被 Person 使用之外)是孤儿属性(当然,这可能是itemref'd by other items)。

标签: microdata


【解决方案1】:

规范要求只是itemprop在至少一项中使用。没有任何迹象表明我可以看到被 itemref 引用并不构成使用,也没有表明 itemprop 被复制,并且使用的是副本而不是原始副本。所以我认为规范要求得到满足,微数据是有效的。

此外,请考虑规范的意图。基本思想是,任何项目都没有使用的 itemprop 是没有意义的——浪费打字——因此一定是创作错误。这足以使加价被视为无效。由于这里不是这种情况,因此没有理由使这种构造无效。

【讨论】:

  • 好的,谢谢。我想知道为什么我之前没有注意到这一段(5.5 结尾):“文档不得包含任何具有 itemprop 属性的元素,该属性不会被发现是其中任何项目的属性文件是它们的属性都待确定。”
【解决方案2】:
  1. 这是有效的微数据吗?
    • 是的!
  2. 没有 itemscope 父级的 itemprop 会创建项目吗?
    • 不!

项目由 itemscope 属性创建。无论有没有属性,它都是您将其声明为项目的项目。 itemprop 声明了一个项目的属性,它永远不会创建它。在“孤儿”上声明 itemprop 属性仍然是有效的 html,因为在 html 中没有像对元素那样依赖于属性。

http://www.w3.org/TR/2011/WD-microdata-20110405/#the-basic-syntax 9:th example描述了主题位。

我经常使用这些类型的提取。我设计软件的方式是寻找每个项目的根,这就是声明范围的地方。如果声明了引用,我会扩展范围。我从不寻找与范围无关的属性。

【讨论】:

  • 规范中的好例子,谢谢 (in the Note, it’s the 9th example)。 -- 那么您是否同意allowed itemprop values 的定义具有误导性,因为它说(强调我的)“如果项目 不是类型化的项目”?从这个定义来看,似乎不允许使用 orphan itemprop 的属性名称(因为首先没有项目,无论是否输入)。
  • 为了确定:如果我的示例不包含任何itemref,它仍然有效,对吧?
  • 是的,如果没有指定 itemref,它仍然有效!
  • 考虑您的第一个问题。我不能说我觉得这是误导。如果我理解正确,键入的项目是具有指定 itemtype 属性的项目?但我必须说,在这种情况下描述的解释非常复杂。
  • 链接部分定义了 4 种有效 itemprop 值的情况:2 种情况是关于使用绝对 URL(在我的示例中不是这种情况),另外两种情况是使用字符串(我的情况)。但是这两种情况都以“如果项目是[…]”开头,所以根据这个定义,itemprop 不能有字符串值,除非有项目。
猜你喜欢
  • 1970-01-01
  • 2017-04-28
  • 1970-01-01
  • 2020-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多