如何从多个位置引用XML节点

时间:2010-02-08 10:57:34

标签: xml reference

我确定这是一个非常基本的XML问题,但我无法在任何地方找到答案。在同一XML文档中的多个其他位置引用特定XML节点的最常见方法是什么?

例如,考虑一下像

这样的文档
<?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节点内的作者节点旨在作为对顶级作者节点的引用。理想情况下,当将这样的文档加载到某些OO编程语言中时,Book对象的author属性将直接引用与先前创建的Author对象相同的Author对象。

显然,我在XML中编写它的方式是非标准的,并且在加载后需要额外的工作。不过,我确信人们一直在以XML格式存储交叉引用的东西。做这样的事情的最佳和/或最简单和/或最“正确”的功能是什么?支持标准最好支持哪种方式,例如XPath等?

我读过关于XLink但是我不确定它是否是最好的解决方案 - 它似乎也已经过时且未使用(是真的)吗?

1 个答案:

答案 0 :(得分:-1)

发布的XML有效。多个引用相同元素没有错。

您有关于使用此XML来保护对象模型的问题吗?