使用#引用id的XML?

时间:2014-02-28 09:43:38

标签: xml reference identifier xpointer

我当前的项目包含收藏中的字母。每个集合都有一个id,字母引用这些ID。 来自“TEI世界”,我认为用#:

做到这一点是最好的解决方案
<collection xml:id="1"/>

<letter is_included_in="#1"/>

我认为这是实现这一目标的最佳方式,也是XPointer标准的目的。

最近,我了解到XML Schema中有一个dt:type =“idref”类型来处理对id的引用。这样就没有了#。

所以,我现在有点困惑。

这里有什么最好的实践,以及在一个xml文档中处理id引用的最具语义的方法? 或者,换句话说:任何不了解我的XMl架构的人类或非人类读者如何期望我这样做?

1 个答案:

答案 0 :(得分:2)

如果您正在开发一个不需要进行子引用的简单引用方案,我建议您不要使用哈希字符(#)预先挂起所有引用:

<collection xml:id="c1"/>

<letter is_included_in="c1"/>
  • 在基础级别,标准做法是标识符和引用匹配 究竟; @id@idref完全匹配。
  • 历史上,引用中的#用于在对子部分的引用之前。 (具体请参阅HTML @href中广泛采用的散列标记标准用法,以引入片段标识符来引用HTML页面的命名部分。)TEI和XPointer构建于此约定之上的URI。
  • XML spec要求ID must match类型的属性值为Name production,这会禁止id以数字开头。