XML中关于“使用元素还是属性”的问题
2009-03-18 15:00
387 查看
使用元素还是属性
数据可被存储于子元素之中,或者在属性中也可以。
请看这些例子:
<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
数据可被存储于子元素之中,或者在属性中也可以。
请看这些例子:
<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
相关文章推荐
- xml使用子元素还是使用属性
- 何时使用元素,何时使用属性探讨 XML 设计中的老问题
- 关于子元素的margin-top属性会传给父元素的问题
- 使用jquery动态修改dom元素属性在IE下的问题
- 关于AndroidManifest.xml开发中使用系统权限报错的问题
- 关于项目既要使用ant脚本又要使用maven pom.xml文件的问题
- 关于main.xml中使用ImageView引起Missing contentDescription attribute on image 的问题
- Spring根据XML配置文件注入属性 其实也是造bean,看看是使用constructor还是setter顺带完成属性赋值
- 关于成如何使用C语言处理数组元素c[-1]=0的问题
- 关于使用绝对定位使元素垂直居中的问题
- 关于使用struts2与jsp时,使用prototype.js的$属性与jquery的$冲突问题
- 关于自定义控件在布局文件中使用时提示error: Error parsing XML: not well-formed (invalid token)错误的问题
- 关于子元素的margin-top属性会传给父元素的问题
- 关于使用IQKeyBoardManager键盘还是被遮挡的问题解决方案
- 关于web.xml中元素的问题
- layout使用ImageView控件里关于contentDescription属性的问题
- 关于 web.xml 3.1 以及 jsp2.0下使用fmt标签 异常的问题
- C#中使用SelectNodes筛选XML元素的问题
- .NET:使用 XPATH 读取有 xmlns 属性的 XML 文档出现的问题
- [代码]使用函数构造创建具有属性的元素(LINQ to XML)