XML简介:
Xml是可扩展性标记语言(eXtendsible Markup Language)的缩写。
所谓标记,是指一系列的特许的字符符号,可以通过向其中插入文本来存储文档的内容。
它是不同技术之间数据交换的基石。
* xml与html的区别:
> Xml是一中标记语言,这意味着xml文档都是使用标记来存储数据和信息的。
>> 一个规范的html文档完全可以被看做xml文档。
>> xml的可扩展性体现在其标记可由开发者自行定义。
>> xml文档更接近于数据库,它并不存储数据的表现形式。
> html是一门编程语言,它可以被解析工具(如IE浏览器)处理,
并将信息以某种格式显示出来。
>> html注重的是数据的表现形式。
HTML由于已定义标记的有限性,在很多领域已经抓襟见肘了。
而xml可扩展性很好的弥补了HTML的缺陷。
* xml主要应用于一下几个方面:
1.数据交换
2.跨平台应用开发
3.数据转换
4.数据库:xml完全可以作为一个小型数据库来使用。
5.配置文件:尤其是在Java开源框架中,如struts,hibernate,spring等。
都是用xml文档作为配置文件。
* xml语法:
一.文档类型的声明:
<?xml version="1.0"?>
该语句是xml文档类型的声明,表示该文档是一个xml文件。
version="1.0"表示该xml文档的版本是1.0的。
说明:
w3c虽然已经提供了xml1.1的版本的推荐标准,但并未被广泛的普及和应用。
最主要原因是说明了1.1版本不能完全向后兼容xml1.0版本。
因为xml的应用非常广泛,所以在无法做到很好兼容的情况下,
使用xml1.1来代替xml1.0是不可取的。
1.文档编码:xml的字符被设计为使用Unicode编码。
> xml文档的默认编码为UTF-8,欲改变xml的字符编码,应适用encoding属性。
> 具体设置:<?xml version="1.0" encoding="ISO-8859-1"?>
2.文档的独立性:xml文档的外部关联一般使用外部实体或应用了外部DTD文件。
3.注意的问题:
a) xml文档类型的声明并不是处理命令,虽然其形式和处理指令非常相似。
b) 字符串"xml"和字符串"<?"之间不能留有空格。
c) 文档类型的声明可以不出现在xml文档中,
如果出现,则一定要出现在xml文档的第一行第一列。
二。文档注释:
xml的文档注释以<!--开头,以-->结束,中间为注释的内容。
注意的问题:
1.文档注释中可以包含任何特殊的字符。
2.文档注释必须以-->结束
三。元素:元素是指标签及包含在标签内部的内容。
> 元素的命名要遵循以下规则:
1.元素名只能以字母或下划线开始,其后可以跟数字,字母和下划线的任意组合。
2.元素名不能以xml(Xml xMl......)开头
3.元素名不能包含空格
4.元素的开始标签与结束标签名称必须完全一致,包括大小写一致。
> 根元素:
>> 每个xml文档元素有且只有一个根元素,
>> 根元素是顶级元素(也就是第一个元素),
>> 除处理指令和注释外,其余所有必须包含在根元素当中。
> 元素的嵌套和元素的并列:
>> 元素嵌套是指一个元素完全包含在另一个元素中。
>> 元素并列是指多个元素具有相同的父元素。
>> 在xml文档中不允许元素的交叉使用。
注意的问题:
1.xml是大小写敏感的
2.文档类型声明,注释和文档的处理指令都不是元素
3.元素的开始标签和结束标签必须成对出现。
四。属性:
> 属性用于描述元素,所以属性必须出现在元素的标签内部。
>> 属性值一定要用引括号起来。
> 在属性赋值时所使用的双引号可以单引号来代替。
>> 两者在使用时并无区别,但是当属性值含有双引号时,
则必须使用单引号来进行属性赋值,反之亦然。
使用属性还是子元素的区别:
> 描叙一个元素的某个特征时,使用子元素和属性都是可行的。
> 属性相对与子元素的局限性:
1.属性的扩展性差。
2.每个元素中同名的属性只能出现一次而同名的子元素可以出现多个。
3.属性存储的数据量一旦过大,就会造成xml文档结构上的失衡,
给阅读造成很大的不便。
五:实体引用
记住五种实体引用:
1.&;------------------&
2.< ------------------<
3.> ------------------>
4.'------------------'
5."------------------"
六。CDATA的语法
> CDATA的全称为字符数据(Character Data),
> 其语法规则:<![CDATA[comment]]>,其中<![为开始符,]]>为结束符,
> 包含在其中的全部字符都被处理器视为普通字符。
注意的问题:
1.CDATA段不可嵌套,而且没有嵌套的必要。
2.当需要将大块的文本内容填充到元素中时,比较适合用CDATA部件。
七。xml中的DTD
> DTD实际上可以看做一个或多个xml文件的模板,
> 这些xml文件中的元素,元素属性,元素的排列方式、顺序,
元素能够包含的内容等,都必须符合DTD中的定义。
> DTD可以是一个完全独立的文件,也可以是在xml文件中直接设定。
所以DTD分为外部DTD和内部DTD.
内部DTD:
内部DTD是在xml文件中的文件序言区域中定义的。
语法:
<!DOCTYPE elementname[
............
]>
说明:
<!DOCTYPE : 表示开始设定DTD
elementsname: 制定此DTD的根元素名称
[..........]: 在[]标记里面定义xml文件使用的元素,然后用>结束DTD定义
在DTD定义的中间元素设定,是DTD的最主要部分,其语法如下:
<!ELEMENT elementname elementdifinition>
内容模式:ANY,EMPTY,MIXED,子元素
元素:
? 不出现或只出现一次
* 不出现或可以出现多次
+ 必须出现一次以上
无符号 只能出现一次
<!ATTLIST 元素名 属性名 属性类型 缺省类型>
属性类型:10种 缺省类型:4种:#required #implied #fix 字符串
八。命名空间
语法:xmlns:prefix="uri"
> uri是一个虚拟的空间,不一定是实实在在存在的。
>
命名空间用来解决同名标签的问题.
> 命名空间对属性不起作用,只表明标签属于哪个命名空间.
十。如何书写xml文档
a) 首先要书写xml文档的类型声明
b) 然后添加一个注释以标注开发者的信息,开发时间等。
c) 接着为xml文档定义一个根元素。
d) 再接着添加二级元素,三级元素。
以上只是书写xml的一般步骤,其中元素的嵌套和属性依附是最关键的步骤。