我当前的项目由集合中的字母组成。每个集合都有一个 id,字母引用这些 id。来自"TEI 世界",我认为用 #:
<collection xml:id="1"/>
<letter is_included_in="#1"/>
我认为这是这样做的常用和最好的方法,也是XPointer标准的意图。
最近,我了解到XML模式中有一个dt:type="idref"类型来处理对id的引用。这样就没有#了。
所以,我现在有点困惑。
这里最好的做法是什么,以及处理一个 xml 文档中的 id 引用的最语义方法?或者,换句话说:任何不知道我的XMl模式的人类或非人类读者如何期望我这样做?
如果您正在开发一种不必进行子引用的简单引用方案,我建议您不要在前面附加所有引用哈希字符 ( #
):
<collection xml:id="c1"/>
<letter is_included_in="c1"/>
- 在基本级别,标准做法是标识符和引用匹配完全;
@id
和@idref
完全匹配。 - 从历史上看,参照中的
#
用于在对子零件的参照之前。 (具体请参阅HTML@href
中广泛采用的哈希标记标准用法,以引入片段标识符来引用 HTML 页面的命名部分。 TEI 和 XPointer 在 URI 中基于此约定构建。 - XML 规范要求 ID 类型的属性值必须与 Name 生产匹配,这禁止 id 以数字开头。