1.XML的常见应用
1.保存有关系的数据 2.用作软件的配置文件,以描述程序模块之间的关系 如,启动软件soft。需要启动A、B模块,同时启动A、B时需要a1、a2,b1、b2模块的支持
2.XML语法
1.文档声明
<?xml version="1.0" ?>
1.1设定编码集
<?xml version="1.0" encoding="utf-8" ?>
1.2是否为独立文档(是否依赖于另外一个文档)
<?xml version="1.0" standalone="no" ?>
——————————
2.XML元素(指XML标签)
2.1 XML标签中出现的空格和换行会被XML解析程序解析 2.2 命名规范 ——————————-
3. XML属性
一个标签可以有多个属性,一个属性可以有自己的名称和取值,如下
1
2
3
4
5
<input name="text"/>
等同于
<input>
<name>text</name>
</input>
4.CDATA区
编写XML文件时,如果有内容不希望被XML解析程序解析,当成原始内容输出,可以放入CDATA区
1
2
3
<![CDATA[
<a>该标签不会被解析,而是被原始数据原始输出</a>
]]>
一般该区域的数据用来交给程序识别
5.处理指令
指令以<?开头,以?>结束
如XML引用css的指令,用xml-stylesheet
<?xml-stylesheet type="text/css" href="1.css"?>
3.XML的DTD约束和DTD校验
常用约束技术2种: XML DTD (Document Type Definition) 文档类型定义 和XML Schema 如下DTD文件的定义
1
2
3
4
5
6
book.dtd
<!ELEMENT 书架(书+)> //限制书架可以放1本或多本书
<!ELEMENT 书 (书名,作者,售价)> //书中可以放书名,作者,售价
<!ELEMENT 书名 (#PCDATA)> // (#PCDATA)为限制放入的值
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
<!DOCTYPE 书架 SYSTEM "book.dtd">
4.XML解析技术
分为两种:dom和sax dom解析: 1.将整个xml变成Document对象 2.xml的每个节点成为element对象 对内存消耗大;对节点的增删改查容易 sax解析:占用内存少,解析速度快,适合读取,不适合增删改 解析开发包:Jaxp、Jdom、dom4j
4.Sax解析
Sax解析器解析xml的一部分内容,并把内容作为参数交给事件处理器处理,我们编写事件处理器来处理XML元素。
5.XML Schema
XML Schema也是一种XML,可以被DOM,SAX解析 1.对XML的定义约束能力强。(整数,小数,对象,String) 2.自身也是XML文件,扩展名为.xsd 3.XML Schema称为约束文档(模式文档),遵循这个文档书写XML称为实例文档 4.编写约束文档后,需要把文档中的元素绑定到URI上,即绑定到名称空间上。 Schema约束文档样例
XML实例文档样例