<?xml version="1.0" encoding="ISO-8859-1"?>
<library>
<author id="john">
<name>John Brown</name>
</author>
<book>
<title>How To Peel Bananas In 10 Simple Steps</title>
<author ref="#john"/>
</book>
<book>
<title>Why Bananas Grow Upward</title>
<subtitle>How The Main World Religions View Banana Growth</subtitle>
<author ref="#john"/>
</book>
</library>
显然,book节点中的author节点是对顶级author节点的引用。理想情况下,当将这样的文档加载到某个OO编程语言中时,Book对象的author属性将直接引用与前面创建的author对象相同的author对象。
显然,我用XML写这篇文章的方法是非标准的,而且在加载之后需要额外的工作。尽管如此,我确信人们一直在用XML存储交叉引用的内容。做这样的事情最好和/或最简单和/或最“正确”的特性是什么?支持标准(如XPath等)最好支持哪种方式?
我读过关于XLink的文章,但我不确定它是否是最好的解决方案—它似乎也相当过时和未使用(这是真的吗)?