引用 # 或不带 # 的 ID 的 XML



我当前的项目由集合中的字母组成。每个集合都有一个 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 以数字开头。

相关内容

  • 没有找到相关文章

最新更新