XML 2010-5-13
一、XML 简介
l XML 是一种通用的数据交换格式
l 许多系统的配置文件都是用XML
l JSP 文档也逐步向XML 语法格式过渡
l 许多项目都采用XML 作为数据交换格式
l 软件开发人员的一项基本能力
二、什么是配置文件
l 配置文件就是记录应用程序的配置信息的文件
l 传统配置文件
#Db.Properties
DBServer=192.168.0.100
Database=emp
Port=1443
Username=Alex
Password=123
三、XML 与HTML 的比较
l HTML 将数据和其显示效果混在一起,它是一种表现技术;XML 文档只是存储了数据和描述数据之间的关系,没有规定该如何显示数据。
l HTML 的格式要求比较松散;而XML 是非常严格的标记语言。
l HTML 的标记集合是固定的;而XML 只是提供了一个标准,人们可以按照这个标准来定义自己专用的标记。
l XML 允许粒度更新,HTML 不支持类似功能。
l XML 不是HTML 的升级,也不是HTML 的替代产品。
l HTML 目前已经不再是WEB 标记的标准,它已经被XHTML 所取代,XHTML 是HTML 和XML 的混合物,是XML 在WEB 另一的一种应用
四、XML 与数据库的比较
l 一个XML 文档就像数据库中的一个表,具有三个要素:文档结构、文档数据和文档样式。
l XML 文档的结构相当于数据库的表结构
l XML 标签内嵌套的数据就相当于数据库表中的某个字段内的数据
l 数据库表中的数据可以采用表格、表单或其他形式显示,还可以用程序来查询、运算、修改。XML 文档中的数据也可以被其他应用程序查询、运算、修改和以多种方式显示。
l 多个XML 文档的元素之间还可以像数据库的表字段一样定义主外键关系,可以XML 文档看成是一个非常小型的数据库
l XML 非常适合信息交换,但不适合做信息处理
五、文档声明
<?xml version=”1.0” encoding=”GB2313” standalone=”yes”?>
语法类型 版本 字符编码 文档是否独立
六、元素定义
l 一个XML 元素由一个标记来定义,包括开始和结束标记以及其中的内容
l 一个元素中可以嵌套若干子元素
l 格式良好的XML 文档必须有且仅有一个根元素
l 空元素可以不使用结束标记,但必须在起始标记的结束定界符前面增加一个正斜杠字符
l 所有元素都必须合理的嵌套,绝对不允许标签交叉
七、元素的标记名称规范:可以包含字母、数字以及其它一些可见字符,如下
l 区分大小写
l 不能以数字或下划线开头
l 不能以字符组合xml 开头
l 不能包含空格
l 名称中间不能包含冒号
八、元素的标记名称建议
l 不要使用“. ”号,因为在很多程序语言中,点号用于饮用对象的属性。
l 最好不要用减号,而以下划线代替,以避免与表达式中的减号冲突
l 名称尽量简短,以减少XML 文档的大小
l 名称的大小写尽量采用同一标准,要么全大写,要么全小写
l 名称可以使用非英文字符,但有些软件可能不支持,慎重
九、属性定义
l 一个标签可以有多个属性,每个属性都有它自己的名称和取值,如
< 售价 单价 =” 元 ”>58</ 售价 >
l 属性值一定要用双引号或单引号
l 属性遵循与标签相同的命名规范
l 属性可以被改成用子元素来描述同样的信息,如
< 售价 >
< 单位 > 元 </ 单位 >
< 价格 >58</ 价格 >
</ 售价 >
十、注释
l <!— 注释内容--> 、XML 声明之前不能有注释、注释不能嵌套
十一、空格和换行的处理
l 对于XML 中的标签以外的所有空格和换行,XML 解析程序都要一个个如实地交给下游程序去处理。(下面两个是不一样的)
< 单价 > < 单价 >58 元 </ 单价 >
58 元
</ 单价 >
十二、CDATA 区
l 全称character data ,<![CDATA[ 原始数据]]> ,解析器不对CDATA 区中的内容进行解析,原封不动交给下游程序处理。
l CDATA 区中的起始和结束处有没有空格和换行时有区别的
特殊字符 | 替换 | 特殊字符 | 替换 |
& | & | < | < |
“ | " | > | > |
‘ | ' |
|
|
十三、特殊字符
十四、处理指令
l processing instruction 的中文翻译,通常简称PI ,用来处理XML 文档的应用程序提供指示信息。
l 处理指令以”<?” 作为开头,以”?>” 作为结束,XML 声明语句是最常见的一种处理指令
l XML 分析器把处理指令原封不动的传给应用程序,由应用程序来解释指令如: <?xml-stylesheet version=”text/css” href=”book.css” ?> 告诉浏览器使用book.css 来控制其显示效果
十五、XML 的约束模式
l 约束模式定义了XML 文档中允许出现的元素名、元素中的属性、元素中的内容类型以及元素之间的嵌套关系和出现顺序
l XML 约束不仅定义了XML 文档的词汇表,它还定义了一个XML 文档必须遵循什么样的结构。
l 如果把一个XML 文件看做是数据库中的一个表,那么XML 约束模式就相当于数据库结构的定义。
l 如果没有为一个XML 文档指定约束模式,那么该文档中可以包含任何类型的标记;如果为一个XML 文档指定了约束模式,那么它必须满足约束模式的结构、数据类型和数据关联等内容。
十六、XML 约束模式语言
l XML 约束模式语言是用来创造XML 标记语言的语言,这种用于定义另一种语言的语言被称作约束语言
l 约束模式通常都是在一个单独的文件中进行定义,这个文档被称作模式文档,依照模式文档编写的XML 文档被称作实例文档
l 如:XML DTD 、XDR 、SOX 、XML Schema 等等,常用DTD 、Schema