XML的概述
Don Box等人在其合著的《Essential XML》的前言中半开玩笑的说道:“可扩展标记性语言已经取代了Java、设计模式、对象技术,称为软件行业解决世界饥荒的方案。”确实,XML是一种非常有用的描述结构化信息的技术。
其实大家在许多项目中见过一些程序配置是采用properties文件来描述,属性文件里面包含一组有一组的键值对(key=value)形式。例如:
//user类的属性配置
user1.username=张三
user1.password=123456
user1.age=21
user1.gender=男
在项目中也有许多办法来读取properties文件里面的属性值,这写出比较简单的一种:
//通过文件的路径,获取对应的输入流
InputStream in = this.class.getResourceAsStream("/com/file/source/Data.properties");
Properties prop = new Properties();
prop.load(in);
//通过key值去获取对应的value值
String username = prop.getProperty("user1.username");
用properties有时候描述不了较为复杂的信息的结构,而且上述的properties文件不太符合面对对象的原则,如果将上述properties文件用比较符合面对对象的写法去写,如下:
user1 = 张三 123456 21 男
user2 = 李四 123556 22 女
但是这样写出来的properties文件不好解析,你要去判断每个属性在何处描述结束 在何处描述又开始,这样就显得比较麻烦。而且常常放入一个值序列,要求键是唯一的。而此时XML格式就解决了这个问题,因为它能够表示层次结构,比属性文件的平面结构更灵活。
<userInfo>
<user>
<username>张三</username>
<password>123456</password>
<age>21</age>
<gender>男</gender>
<user>
<user>
<username>李四</username>
<password>123341</password>
<age>22</age>
<gender>女</gender>
<user>
</userInfo>
XML文档的结构:
XML文档应当以一个文档头开始,例如:
<?xml version="1.0" enconding="UTF-8"?>
或者
<?xml version="1.0"?>
严格来说,文档头是可选的,但是强烈建议你是使用文档头。文档头之后通常是文类型定义(Document Type Definition DTD),例如:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystem, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
XML基本概述的理解到此,后续会有补充,也会讲到如何解析XML文档、验证XML文档、生成XML文档。
欢迎初级Java程序员和我一起学习交流,关注微信公众号swft1314可以领取免费的学习资料,加油一起进步,骚年!!!