XML相对INI来讲,对于一些复杂性的配置,描述性会相对清晰很多,并且不容易被修改错误。 比如:
INIFile code
[Main]
Users=UserList
Files=FileList
...
[UserList]
User0=User0
User1=User1
[User0]
Name=张三
Age=90
...
这样一个配置文件,本来想要描述的是一个Main入口(UserList的命名可能会有所不同,所以不方便直接读取UserList,而需要从入口读取),读取到Users,再根据Users的取值,得到用户的列表,但是由于用户还有相关性的描述性信息,所以还得增加一专项用于描述用户的信息,如此一来,结构就相当复杂,甚至可以说压根儿就没有结构性可言。而一些描述性的信息,我们也只能通过注解代码进行描述,而注解代码是不被解释的,这样就不利用应用程序去处理。
下面来看XML:
HTML code
<?xml Version="1.0" encoding="utf-8">
<Main Description="配置内容入口">
<Users Description="用户信息" Activate="UserList" remark="Activate为当前活动的用户列表">
<UserList Description="用户列表">
<User0 Name="张三" Age="90" ... />
<User1 Name=... /> .... </UserList>
<UserList0 Description="临时用户列表">
...
</UserList0>
...
</Users>
</Main>
如此的结构,更加具有层次性直观性,特别是对于配置文件这东西,在很多的时候除非的特别的配置工具,都可能要手工进行或多或少的修改,上例当中的Users,不需要另外做太多的注解,用户就可以从remark当中明白可以通过Activate的选择而改变活动用户列表。另外就是在文件交换过程当中,这个XML文件被读入内存之后再写出来,所有的描述信息都不会丢失,但是INI就没有任何有效的机制来进行保障。