我当前的项目包含收藏中的字母。每个集合都有一个id,字母引用这些ID。 来自“TEI世界”,我认为用#:
做到这一点是最好的解决方案<collection xml:id="1"/>
<letter is_included_in="#1"/>
我认为这是实现这一目标的最佳方式,也是XPointer标准的目的。
最近,我了解到XML Schema中有一个dt:type =“idref”类型来处理对id的引用。这样就没有了#。
所以,我现在有点困惑。
这里有什么最好的实践,以及在一个xml文档中处理id引用的最具语义的方法? 或者,换句话说:任何不了解我的XMl架构的人类或非人类读者如何期望我这样做?
答案 0 :(得分:2)
如果您正在开发一个不需要进行子引用的简单引用方案,我建议您不要使用哈希字符(#
)预先挂起所有引用:
<collection xml:id="c1"/>
<letter is_included_in="c1"/>
@id
和@idref
完全匹配。#
用于在对子部分的引用之前。 (具体请参阅HTML @href
中广泛采用的散列标记标准用法,以引入片段标识符来引用HTML页面的命名部分。)TEI和XPointer构建于此约定之上的URI。