假设您希望允许某些特定的
XML元素出现0次.例如,< record>元素可以多次出现:
<repository> <record>Record 1</record> <record>Record 2</record> <record>Record 3</record> </repository>
是否有任何令人信服的理由将父元素作为容器包含在内?例如,以下使用< recordSet>包含< record>的元素内容:
<repository> <recordSet> <record>Record 1</record> <record>Record 2</record> <record>Record 3</record> </recordSet> </repository>
在提出这个问题之前我试图找到任何相关的问题,所以如果已经被问到我,我会道歉.提前感谢任何和所有输入!
编辑 – 2009年7月22日:
感谢大家的出色反馈! (我会评论/投票给人,但我还没有足够的声望点.)我可能会继续这条路线,我也想感谢@ 16bytes的建议,包括简单命名父母通过使用复数的重复子元素.
拥有父元素可以更简单地识别XML的各个部分,并使处理程序更容易将子元素映射到集合.
如果你有一个系统禁止使用属性(有些人这样做,那很烦人),你还需要使用包装元素来区分属于特定子元素的属性(如id).
原文链接:https://www.f2er.com/xml/292493.html如果你有一个系统禁止使用属性(有些人这样做,那很烦人),你还需要使用包装元素来区分属于特定子元素的属性(如id).
除此之外,省略父元素是有效的,并且可以使文件明显减少冗长.
在您的第一个示例中,用户元素可能与记录混在一起,这是有效的,但可能很难发现:
<repository> <record>Record 1</record> <record>Record 2</record> <user>Bill</user> <record>Record 3</record> </repository>
而对于周围的元素,您可以分离集合,并具有该集合的多个实例:
<repositories> <users> <user>Bill</user> </users> <repository> <id>id1</id> <recordSet> <id>recordSet1</id> <record>Record 1</record> <record>Record 2</record> <record>Record 3</record> </recordSet> <recordSet> <id>recordSet2</id> <record>Record 1</record> <record>Record 2</record> <record>Record 3</record> </recordSet> </repository> <repository> <id>id2</id> <recordSet> <record>Record 1</record> <record>Record 2</record> <record>Record 3</record> </recordSet> </repository> </repositories>