通常,在 XML 中,#,当作为一个短字符串的前缀时,用于指示 XML“片段”。它只是告诉浏览器在整个页面加载完成后跳转到 XHTML 元素,该元素使用 @ID 属性指定为 ID 。
在 RDFa 中,人们似乎倾向于在创建词汇表时使用它,以避免为每个不同的术语创建不同的 URL。假设主 URI 类似于“www.example.com/vocabulary/”,那么词汇表创建者可以选择让词汇表术语的 URI 具有如下 URI:“www.example.com/vocabulary/term1”或像这样:“www.example.com/vocabulary#term1”。如果这些 URI 仅被用作无法解析为实际网页的空灵 URI,那么这是没有区别的区别。但是,如果所述创建者打算创建一个网页来描述所述词汇表,那么他们可能更容易使用后者,因为整个词汇表的描述出现在 URL 为“www.example.com”的一个网页上。
但是,这里有个问题,我还看到哈希标记在有关 RDFa 的各种解释和教程中使用了不同的方式。我已经看到它在 @about 属性中使用,如下所示:
<span about="#jane">
<!-- Other RDFa or XHTML in here. -->
</span>
在这种情况下,这些教程声称 #jane 现在是一个主题 URI,关于它,人们可以编写谓词和对象。但是,如果 #jane 是一个 URI,那么“她”的完整 URI 是什么?它会是页面的当前基本 URI,并在其末尾附加了#jane 吗?如果是这样,那么 about="#jane" 属性是否提供与同一 XHTML 元素中的 ID="jane" 属性等效的功能?但是,about="#jane" 可以在许多不同的 XHTML 元素中使用,这会给它们所有相同的 ID,这是非法的。
我们是否创建了一个使用#jane 作为其节点 ID 的空白节点 (bNode),然后开始谈论该空白节点?但是,我认为创建空白节点的正确方法是 about="[_:jane]" 所以我很困惑。
或者我们是在谈论一些 XHTML 元素,包含 ID="jane" 属性,在同一页面上的其他地方,可能已经创建,也可能没有创建,但在示例中根本没有提到?
还是所有这些教程和示例的作者都只是使用教程中普遍接受的速记,但没有解释他们到底在做什么?如果是这样,我有很多帅哥,当我遇到他们时,我会打得头晕目眩。