可以使用xml循环引用吗?
问题描述:
我正在创建一个XML模式,用于跟踪有关文件源/来源的信息。可以使用xml循环引用吗?
我想建立一个像我下面的例子一样的子母结构,所以我不必跟踪元线性列表中的关系。
这样好吗?有没有任何理由不推荐?,如果不是,什么是正确的方法?
XML结构
<meta> <!-- root -->
<info/>
<sources>
<source>
<meta> <!-- circular reference -->
<info/>
<sources>
<source>
<meta>...</meta> <!-- circular reference -->
</source>
</sources>
</meta>
</source>
<source>
<meta> <!-- circular reference -->
<info/>
<sources>
<source>
<meta>...</meta> <!-- circular reference -->
</source>
</sources>
</meta>
</source>
</sources>
</meta>
答
我想你的意思,是不是好了一个元素有相同的元素类型名称的后裔?
当然;很多XML词汇表都使用递归元素。 (X)HTML div元素是您可能会熟悉的一个示例。
递归的优点通常是它简化了词汇表;主要的缺点是需要处理器(以及编写它们的人)跟踪递归。在许多情况下这很容易,而在其他情况下可能会很尴尬。
您确实需要确保递归元素不是作为子节点或子节点的后代需要的;否则不可能有任何有效的有限文件。
我想,信息元素应该与源元素在相同的缩进级别?即使如此,我也无法提出任何建议,因为我无法从示例中认识到递归应该如何结束。这将有助于以这种终止案件取代一次“......”。 – guidot 2012-07-30 08:37:43