XML学习笔记1:
一、为什么要学习XML文件
1.XML是一种通用的数据交换格式。
2.许多系统的配置文件都使用XML格式。
3.什么是配置文件。
配置文件就是记录应用程序的配置信息的文件。
传统配置文件的格式:表达信息为平衡关系,不具有层次结构关系。
#Db.Properties
DBServer=192.168.1.100
Database=emp
Port=1443
Username=zxx
Password=123
XML可以很好的表达层次结构关系。
4.JSP文档也逐步向XML语法格式过渡
5.许多项目都采用XML作为数据交换格式。
二、XML的起源与作用。
三、XML文件内容与结构
<书架>
<书>
<书名></书名>
</书名>
</书架>
四、XML与HTML的比较
五、XML与
数据库的比较
六、XML的基本语法
1.文档声明
2.元素定义
3.属性定义
4.注释
5.空格和换行的处理
6.CDATA区
7.特殊字符
8.处理指令(processing instruction)
1.文档声明
最简单的声明语法:
<?xml verson="1.0" ?>
用encoding属性说明文档的字符编码:
<?xml version="1.0" encoding="GB2312" ?>
如果没有声明encoding,默认使用UTF-8或者UTP-16
用standalone属性说明文档是否独立:
<?xml version="1.0" encoding="GB2312" standalone="yes" ?>
2.元素定义
一个xml元素由一个标记来定义,包括开始和结束标记以及其中的内容,例如:<书名>java学习</书名>
一个元素中可以嵌套若干自元素。
格式良好的xml文档必须有且仅有一个根元素,
其他元素都是这个根元素的子孙元素。
空元素可以不使用结束标记,但必须在起始标记的结束定界符(>)前面增加一个正斜杠(/)字符,例如:
<img src="log.gif" />
通常与属性配合使用。
所有的元素都必须合理的嵌套,不能出现标签交叉,例如:
<b>welcome to <i> www.163.com </b>www.44.com />
元素的标记名称规范
可以包含字母、数字以及其他一些可见字符,但必须遵循以下的一些规:
区分大小写,例如:<P>和<p>是两个不同的标记。
不能以数字或"_"开头。
不能以字符组合xml开头。
不能包含空格。
不能包含冒号。
元素的标记名称建议
不要使用"."。
不要使用"-"减号。
名称尽量简短。
名称的大小写尽量统一标准,要么大写,要么小写。
名称可以使用非英文字符。
3.属性定义
一个标签可以有多个属性,每个属性都有自己的名称和取值。
属性值一定要用""或''引起来。
属性遵循与标签相同的命名规范。
属性可以被改写成子元素来表述同样的信息。
4.注释
用<!--注释-->这种格式加入注释,与HTML语言注释一样。
xml声明之前不能有注释
一对注释符号中不能包含另外一对注释符号。
5.空格和换行的处理
对于XML中的标签意外的所有空格和换行,XML解析程序都要一个个如实地交给下游程序去处理。
由于在XML中,空格和换行都作为原始内容被处理,所以,在编写XML文件时,使用换行和缩进等方式需要改变。
6.CDATA区
问题:XML文档中包含类似"Elements look like <this>"的文本,其中的"<this>"将被解析程序解释成一个元素,而人们实际想要的是"<this>"所表示的原义文本。
CDATA区全称为character data,以"<![CDATA]"开始,以"]]>"结束,在两者之间嵌入不想被解析程序解析的原始数据,解析器不对CDATA区中的内容进行解析,而是将这些数据原封不动地交给下游程序去处理。
CDATA区中的起始和结束处有和没有空格和换行字符是有区别的,例如:
<![CDATA[www.163.com]]>
和
<![CDATA[
www.163.com
]]>
"<![CDATA["不能写成"<![cdata[",要区分大小写。
CDATA区内部不能出现字符串"]]>"。
7.特殊字符
转义处理:
特殊字符 替代符号
& &
< <
> >
" "
' '
8.处理指令(processing instruction)
通常简称PI,为处理XML文档的应用程序提供指示信息。
处理指令以"<?"作为开始,以"?>"作为结尾,XML声明语句就是最常见的一种处理指令。
XML分析器吧处理指令原封不动的传递给应用程序,由应用程序来解释这个指令,按照它所提供的信息进行处理。例如:在一个XML文档中可以包含下面的语句来告诉浏览器使用book.css控制其显示效果:
<?xml-stylesheet type="text/css" href="book.css" ?>