XML的主要的功能就是配置文件、数据传输、数据存储
配置文件:我们常用的框架Struts2 、Spring、Hibernate、Ibaits等一些Web框架都需要使用xml文件进行配置。
数据传输:Web Service使用的是SOAP协议传输数据,该数据的格式就是xml文档的片段。
数据的存储:如果没有数据库,我们可以使用xml文件进行数据的存储。
XML有自己的语法,但是为了让我们开发的xml文档其他人可以看懂,所以需要有规定关于xml,XML的约束主要有2个,DTD ,SCHEMA
首先介绍一下DTD规则,(Document type definition)
这个规定,既可以定义在xml文件的内部,也可以把这个规则定义在一个单独的dtd文件中。
例如:
将DTD规则和xml数据写在一个xml文件中。
book.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 书架[
<!ElEMENT 书架 (书+)>
<!ElEMENT 书 (书名,作者,售价)>
<!ElEMENT 书名 (#PCDATA)>
<!ElEMENT 作者 (#PCDATA)>
<!ElEMENT 售价 (#PCDATA)>
]>
<书架>
<书>
<书名>水浒传</书名>
<作者>吴承恩</作者>
<价格>12</价格>
</书>
<书>
<书名>三国演义</书名>
<作者>罗贯中</作者>
<价格>33</价格>
</书>
</书架>
第二种定义就是将规范,放到一个单独的文件中
book.dtd
<!ElEMENT 书架 (书+)>
<!ElEMENT 书 (书名,作者,售价)>
<!ElEMENT 书名 (#PCDATA)>
<!ElEMENT 作者 (#PCDATA)>
<!ElEMENT 售价 (#PCDATA)>
book.xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
<书>
<书名>水浒传</书名>
<作者>吴承恩</作者>
<价格>12</价格>
</书>
<书>
<书名>三国演义</书名>
<作者>罗贯中</作者>
<价格>33</价格>
</书>
</书架>
dtd规则主要包括:元素、属性、实体
元素主要就是:
<!ELEMENT 名称 类型 或者 内容>
例如:
<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书 (书名|作者|售价)> | 表示哪一个都行
+ 代表一个或者多个
?0个或者1个
* 0个或者多个
什么都没有表示默认的一个
属性:
<!ATTLIST 元素的名字
属性的名字 属性类型 属性的说明
>
属性的类型主要有以下类型:
CDATA 字符串
ID ID
ENUMERED
ENTRY 实体对象
属性的说明主要有以下几种类型:
REQUIRED 必须有的
IMPLEMENTED 可以没有
FIXED 固定的不能变的
举个例子:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 书架[
<!ELEMENT 书架(书+)>
<!ELEMENT 书(作者,书名,售价)>
<!ATTLIST 书 color CDATA #REQUIRED>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
]>
<书架>
<书 color="red">
<书名>水浒传</书名>
<作者>吴承恩</作者>
<价格>12</价格>
</书>
<书 color="green">
<书名>三国演义</书名>
<作者>罗贯中</作者>
<价格>33</价格>
</书>
</书架>