1

我正在创建一个 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>
4

1 回答 1

1

我想你的意思是,一个元素可以有一个具有相同元素类型名称的后代吗?

当然; 许多 XML 词汇表使用递归元素。(X)HTML div元素是您可能熟悉的示例。

递归的优点通常是它简化了词汇表。主要缺点是它需要处理器(以及编写它们的人)来跟踪递归。在许多情况下这很容易,但在其他情况下可能会很尴尬。

您确实需要确保递归元素不需要作为其自身的子元素或后代;否则不可能有任何有效的有限文件。

于 2012-09-05T18:43:19.713 回答