xml中该使用属性还是元素

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

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

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

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

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

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

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

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

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

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

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


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

时间: 2024-08-06 12:34:23

xml中该使用属性还是元素的相关文章

Android自己定义控件而且使其能够在xml中自己定义属性

为什么要自己定义View android开发中自己定义View的优点是显而易见的.比方说以下的这个顶部导航,它被设计出如今应用的每一个界面,但每次的内容却不尽同样.我们不能在每一个layout资源中都配置一组同样的View吧?假设使用<include layou="@layout/xxx"/>标签,尽管攻克了布局文件的重用性,可是相关View的初始化设置还是没可以重用(集中),须要每次都採用view.findViewById(id)来初始化他们. 有了对"可重用性

Android中xml中shape的属性助记

对于shape的一些属性老是忘记,每次都要去查找,为了方便我就自己记录下来,方便以后忘记了再查看这些属性. 在shape中有几个属性rectangle.oval.line.ring1.环形ring    在shape标签中把shape属性设置为ring类型    然后在shape标签中设置以下属性(这些属性只能在shape值为ring是使用)    android:innerRadius       内环的半径,尺寸单位是dp(不设置这个参数,会有个默认值)    android:thickne

SqlMapConfig.xml中的setting属性设置

<settings     cacheModelsEnabled="true"     lazyLoadingEnabled="false"     enhancementEnabled="true"     maxSessions="64"     maxTransactions="8"     maxRequests="128"     useStatementNamespac

SqlMapConfig.xml中的setting属性 Ibatis mybatis

<settingscacheModelsEnabled="true"lazyLoadingEnabled="false"enhancementEnabled="true"maxSessions="64"maxTransactions="8"maxRequests="128"useStatementNamespaces="false"classInfoCacheE

C# XML 新建一个包含属性的元素

1 代码 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Xml.Linq; 7 8 namespace ConsoleApplication8 9 { 10 11 class Program 12 { 13 static void Main(string[] ar

struts2.xml 中result type属性说明

chain           用来处理Action链,被跳转的action中仍能获取上个页面的值,如request信息.           com.opensymphony.xwork2.ActionChainResult       dispatcher           用来转向页面,通常处理JSP           org.apache.struts2.dispatcher.ServletDispatcherResult       freemaker           处理Fr

android动画具体解释六 XML中定义动画

动画View 属性动画系统同意动画View对象并提供非常多比view动画系统更高级的功能.view动画系统通过改变绘制方式来变换View对象,view动画是被view的容器所处理的,由于View本身没有要操控的属性.结果就是View被动画了.但View对象本身并没有变化. 在Android3.0中,新的属性和对应的getter和setter方法被增加以克服此缺点. 属性动画系统能够通过改变View对象的真实属性来动画Views. 并且.View也会在其属性改变时自己主动调用invalidate(

android动画详解六 XML中定义动画

动画View 属性动画系统允许动画View对象并提供很多比view动画系统更高级的功能.view动画系统通过改变绘制方式来变换View对象,view动画是被view的容器所处理的,因为View本身没有要操控的属性.结果就是View被动画了,但View对象本身并没有变化.在Android3.0中,新的属性和相应的getter和setter方法被加入以克服此缺点. 属性动画系统可以通过改变View对象的真实属性来动画Views.而且,View也会在其属性改变时自动调用invalidate()方法来刷

spring controller中@Value取不到applicationContext.xml中加载配置文件的问题

原因还未查证: http://sunjun041640.blog.163.com/blog/static/256268322014127113844746/ 在使用spring mvc时,实际上是两个spring容器: 1,dispatcher-servlet.xml 是一个,我们的controller就在这里,所以这个里面也需要注入属性文件 org.springframework.web.servlet.DispatcherServlet 这里最终是使用WebApplicationContex