1

在 W3C 的HTML Microdata中,它说目前在 WHATWG 的HTML Living Standard中也是如此):

除非该规范另有规定,否则不应自动取消引用作为项目类型给出的 URL。

注意:例如,规范可以定义其项目类型可以取消引用以向用户提供帮助信息。事实上,鼓励词汇作者在给定的 URL 上提供有用的信息。

紧随其后的是:

项目类型是不透明的标识符,用户代理不得取消引用未知项目类型,或以其他方式解构它们,以确定如何处理使用它们的项目。

我对此感到困惑。在第一段中,它说itemtype属性中的 URL“不应自动取消引用”(应该,不是必须;因此根据本段,允许用户代理取消引用)。但在最后一段中,它说用户代理“不得取消引用未知的项目类型”。

这是矛盾还是它们意味着不同的东西?

也许它只是关于已知未知(尽管在第一段中它根本没有提到“已知”,所以我认为它适用于所有词汇,无论是否已知)?但是,如果用户代理知道一个词汇表,为什么会有所作为呢?首先“知道”一个词汇究竟意味着什么?

或者也许“为了确定如何处理使用它们的项目”部分是这里问题的症结所在?所以用户代理可以出于任何原因取消引用,除非他们试图确定如何处理这些项目?

4

1 回答 1

0

我想,但我不确定...

区别是已知与未知。至于“已知”是什么意思,记住这只是数据,用户代理不一定是浏览器。例如,一个特定的数据集至少在理论上可以被解释为控制现实世界的机器。

第一部分是说,如果 UA 知道数据类型,那么它不应该需要取消引用它,因为 UA 将始终知道通过取消引用获得的资源是什么。所以这只是网络流量开销。与 UA 不应该取消引用 DTD 一样,因为它们应该已经知道 DTD 资源将包含什么。这是应该的,因为不可能说对于任意已知的 UA 数据类型,在任何情况下取消引用都可能产生有用的结果。

后面的部分是说,如果 UA 不知道数据类型,则没有定义解引用将产生有意义的资源的协议,因此 UA 充其量只是猜测。任何系统做解引用和一些网络成本都是没有价值的,所以它不能这样做。

于 2014-09-30T00:22:40.270 回答