0

我目前正在处理一个为只有 2 个级别的 XML 层次结构编写的 XML 文档。现在,我想向它添加一个一对多的分类,这会破坏与该文件一起使用的大部分代码。

我可以将该分类添加为新级别,也可以将其实现为同一级别的属性(几乎就像标记一样)。

当前的:

<category>
    <subcategory></subcategory>
<category>

建议的:

<supercategory>
    <category>
        <subcategory></subcategory>
    </category>
</supercategory>

或者:

<category supercategory="">
    <subcategory></subcategory>
</category>

哪种方法更易于维护?

4

2 回答 2

0

我认为创造一个新的水平是更好的解决方案。它遵循您当前的方法(嵌套元素),这很好,并且您的第一个示例还具有原始 Category 元素本身保持不变的好处。

您还可以考虑递归定义。这可能是现在要考虑的更大的重构,但可能会避免未来的影响。您的类别是 2 级,现在是 3 级,如果您移动到 ​​4 级并且需要添加 SuperDuperCategory 怎么办?

这种表示法可能是另一种选择:

<category>
    <category>
        <category></category>
    </category>
</category>
于 2014-03-06T15:34:05.660 回答
0

对我来说,XML 的优势之一是 XML 元素的分层特性非常适合描述对象的分层排列,例如您的情况。因此,我倾向于您的第一个选项,因为您的 XML 结构更类似于您的数据结构。恕我直言,这使得阅读、管理和理解变得更加容易。

也就是说,只有您才能真正说出使其与现有代码库一起工作所需的额外努力是否值得。如果您认为所需的修改太困难/太耗时,那么肯定没有什么可以阻止您的第二种方式,我只是不认为它是一个优雅的解决方案。

于 2011-03-02T20:32:23.720 回答