为什么避免使用xml属性和使用元素是可取的

时间:2011-10-28 09:12:46

标签: xml xsd

XML模式定义如下,假设我必须得到dept =“lab”和id =“001”。

<start>
    <emp>
        <dept>lab</dept>                    
        <id>001</id>                        
        <sex>male</sex>                 
        <sal>5k</sal>                         
    </emp>                                          
</start>

另一种方式,

<start>                                     
    <emp dept="lab">                                           
        <id sr="001">                        
            <sex>male</sex>                 
            <sal>5k</sal>
        </id>                       
    </emp>                                          
</start>

我认为第二种解决方法要好得多,但建议避免使用属性,为什么?你怎么说?

2 个答案:

答案 0 :(得分:0)

有些人不喜欢属性。他们这么说,你在网上发表了他们的评论。

如果您不同意,请随意忽略这些人并使用您想要的属性。 (如果重要的话,你总是可以推断出SGML和XML的设计者同意你,而不是那些不喜欢属性的人。)

答案 1 :(得分:0)

避免属性有三个主要原因:

  1. 属性不能包含多个值,但子元素可以包含多个值。
  2. 属性不能包含树结构,但子元素可以包含。
  3. 属性不易扩展。如果您希望将来更改属性的值,可能会很复杂。
  4. 属性不能描述结构,但子元素可以。
  5. 属性更难以被程序代码操纵。
  6. 根据DTD测试属性值并不容易,DTD用于定义XML文档的合法元素。
  7.   

    这就是为什么建议继续使用非属性的元素......