在XML层次结构中添加属性或创建新级别?
我目前正在编写一个XML文档,它是为只有两个级别的XML层次结构编写的。现在,我想给它添加一个一对多的分类,这将破坏该文件的大部分代码 我可以将该分类添加为一个新级别,也可以将其实现为同一级别上的属性(几乎类似于标记) 当前:在XML层次结构中添加属性或创建新级别?,xml,xsd,maintainability,future-proof,Xml,Xsd,Maintainability,Future Proof,我目前正在编写一个XML文档,它是为只有两个级别的XML层次结构编写的。现在,我想给它添加一个一对多的分类,这将破坏该文件的大部分代码 我可以将该分类添加为一个新级别,也可以将其实现为同一级别上的属性(几乎类似于标记) 当前: <category> <subcategory></subcategory> <category> 提议: <supercategory> <category>
<category>
<subcategory></subcategory>
<category>
提议:
<supercategory>
<category>
<subcategory></subcategory>
</category>
</supercategory>
或:
哪种方法更易于维护?对我来说,XML的优点之一是XML元素的层次结构特性非常适合描述对象的层次结构安排,例如在您的案例中。因此,我倾向于选择第一个选项,因为XML结构更类似于数据的结构。这使它更容易阅读、管理和理解,IMHO
也就是说,只有您才能真正地说,让它与您现有的代码库一起工作所需的额外努力是否值得。如果您认为所需的修改太困难/太耗时,那么当然没有什么可以停止您的第二种方式,我只是认为这不是一个优雅的解决方案。我认为创建一个新级别是更好的解决方案。它遵循您当前的方法(嵌套元素),这很好,您的第一个示例还有一个好处,即原始类别元素本身保持不变
也可以考虑递归定义。这可能是一个更大的重构现在要考虑,但可能避免未来的影响。你的分类是2级,现在是3级,如果你移到4级,你需要添加SuperDuperCategory怎么办
此符号可以是一种替代方法:<category>
<category>
<category></category>
</category>
</category>
编辑您的帖子,并展示您当前和建议结构的一些简短示例。
<category>
<category>
<category></category>
</category>
</category>