xml中该使用属性还是元素

时间:2021-04-28 15:45:16

XML 中没有规定哪些必须放在属性或者子元素,因此使用哪种方式都是可以实现的。这取决于个人的经验和喜好。在可以使用元素也可以使用属性的两选一的情况下,个人更倾向于使用子元素。主要理由如下:

1. 属性不易扩展,只能支持简单数据类型。如果要定义的数据项将来可能扩展为复杂数据对象时,则应毫不犹豫地使用子元素。

2. 子元素在XML文档中更容易解析。

3. 相对属性定义方式,用元素来定义会显的更正式更重要。

4. 人看起来,用元素定义的文档比属性定义的文档更好理解。

什么时候使用属性来定义信息呢?个人认为,一个XML文档中,要对信息进行分类,一类是以交换为目的的数据(这些数据可能会被重新使用和修改),一类是以展现或辅助交换为目的的数据(这类数据重要程度不高)。如果是前者,则使用元素来定义;如果是后者,则使用属性来定义。另外,如果信息的数据类型是原子数据类型,如:令牌类型等,这种类型不可能再有扩展,因此可以使用属性来定义。

国外文章给出的参考意见是:

1. 如果这个信息是可以用元素来定义清楚的,则使用元素方式来定义。

2. 如果这个信息命名对于一个元素来说,最终可能出现多个,则使用元素来定义。

3. 如果这个信息在DTD中被要求作为一个明确的属性类型,如:ID、IDREF, 或 ENTITY,则使用属性来定义。

4. 如果这个信息可能含有空格时,使用元素来定义。


另外,元素或属性命名时,如果有多个词组合,则词之间使用"_"连接符。