XML中关于“使用元素还是属性”的问题

本文讨论了XML中数据存储的选择——使用属性还是子元素,并列举了使用属性可能带来的问题。建议尽量使用子元素来描述数据,仅用属性提供与数据无关的信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用元素还是属性

数据可被存储于子元素之中,或者在属性中也可以。

请看这些例子:
<person sex="female">
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>
<person>
  <sex>female</sex>
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>

 


在第一个例子中,sex是一个属性。在第二个例子中,sex则是一个子元素。两个例子均可提供相同的信息。

没有规则可以告诉我们什么时候该使用属性,而什么时候该使用子元素。在XML中,我们应该尽量避免使用属性。
因使用属性而引起的一些问题: 
属性无法包含多个值(子元素可以) 
属性不易扩展(为未来的变化) 
属性无法描述结构(子元素可以) 
属性更难被编程代码处理 
不易通过某个DTD对属性值进行测试 - DTD用来定义XML文档的合法元素 

如果您使用属性作为数据的容器,那么就会造就难以阅读和维护的文档。请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。

我们应该坚持这样的理念:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。

 

XML的详细教程在以下网站上:

http://www.w3school.com.cn/xml/index.asp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值