我目前正在开发一个XML文档,该文档是为只有2个级别的XML层次结构编写的。现在,我想为它添加一对多的分类,这将破坏大部分与该文件一起使用的代码。
我可以将该分类添加为新级别,或者我可以将其作为同一级别的属性实现(几乎像标记)。
电流:
<category>
<subcategory></subcategory>
<category>
提出:
<supercategory>
<category>
<subcategory></subcategory>
</category>
</supercategory>
或:
<category supercategory="">
<subcategory></subcategory>
</category>
哪种方法更易于维护?
答案 0 :(得分:0)
对我而言,XML的优势之一是XML元素的分层特性非常适合描述对象的分层排列,例如在您的情况下。因此,我倾向于选择您的第一个选项,因为您的XML结构更类似于数据结构。这使得阅读,管理和理解更加容易,恕我直言。
那就是说,只有你真的可以说,使它与你现有的代码库一起工作所需的额外努力是值得的。如果您认为所需的修改过于困难/耗时,那么肯定没有什么可以阻止您的第二种方式,我只是觉得它不是一个优雅的解决方案。
答案 1 :(得分:0)
我认为创造一个新的水平是更好的解决方案。它遵循你当前的方法(嵌套元素),这是好的,你的第一个例子也有一个好处,即原始的Category元素本身保持不变。
您还可以考虑递归定义。这可能是现在要考虑的更大的重构,但可能会避免未来的影响。你的类别是2级,现在它们是3级,如果你移动到4并且需要添加SuperDuperCategory,该怎么办?
这种表示法可以替代:
<category>
<category>
<category></category>
</category>
</category>