第二章规范的xml文件.ppt.Convertor
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章规范的XML文件
XML的特点:
1、是一种能够应用在各个领域进行设计的元标记语言。
2、XML的标记是可自由定义,使得XML文件能够很好地体现数据结构和含义。
3、XML文件必须符合一定的语法规则。
XML文件
规范的XML文件(Well-Formed XML):符合W3C指定的基本语法规则。
有效的XML文件(Validated XML):规范的XML文件再符合额外的一些约束。
规范的XML文件
有效的XML文件
什么是规范的XML文件呢?
符合W3C指定的基本语法规则的XML文件称为有效的XML文件. W3C指定的基本语法规则是指比如,文件用”XML声明”开始,文件有且仅有一个根标记,其他标记必须都封装在根标记中,文件的标记必须是树状结构,非空标记必须由”开始标记”与”结束标记”组成,空标记没有”开始标记”和”结束标记”,等等.
什么是有效的XML文件
规范的XML文件再符合额外的一些约束就称为有效的XML文件.
通常人们认为不规范的XML文件是没有价值的文件,甚至是不能叫做一个XML文件.我们所说的XML文件都是W3C所指定的规范标准.也就是规范的XML文件.
规范的XML的组成:
可选的序言:声明及注释
文档的主体由一个或多个元素组成,其形式为一个可能包含字符数据的文档树
可选的尾部:注释、处理指令和紧跟元素树后的空白。
主要内容
XML声明
XML标记
CDATA区段
标记的属性
名称空间
XML声明
一个规范的XML文档通常以XML声明开始,通过XML元素来组织XML数据。
XML声明是处理指令的一种,它告诉浏览器或其他处理程序这个文档是XML文档。
声明必须放在第一行,前面不能有空白、注释或其它处理命令。
XML声明
XML声明中的版本属性
XML声明中的编码属性
XML声明中的独立属性
其格式如下:
例子:
一对中括号([ ])中的部分表示是可选信息
XML声明中的版本属性
一个最基本的XML声明:
注:V ersion属性不能省略且必须在属性列表的第一位,指明所采用的XML的版本号,用来保证对XML未来版本的支持。
XML声明中的编码属性
编码属性指定了文本的编码系统,即规定了XML文档采用哪种字符集进行编码。
这是一个指定了编码方式的xml声明。我们说encoding指定的编码方式要和其xml的保存方式相一致。
————————————————
接下来我们就介绍一下我们常用的编码方式和保存方式。
XML声明中的编码属性
常用的编码方式及其保存方式
UTF-8
gb2312
ISO-8859-1
如果我们指定encoding的属性值是“UTF-8”那么保存时我们也必须选择其编码是UTF-8。采用这种编码方式,那么标记及标记的内容就可以使用汉字,英文,日文,法文等等。
如果我们的xml文件有特殊要求只准使用ASCII字符和汉字,那么我们可以指定encoding 的属性值是“gb2312”那么保存时我们也必须选择其编码是ANSI。如果这时在我们的xml 文档中出现日文,韩文等,IE及xml解析器就不能正确显示而要抱错了。
如果我们只准备使用ASII字符,那么我们就可以将encoding的属性值设为“ISO-8859-1”那么保存时我们也必须选择其编码是ANSI。————————————————————
那么有些同学就会问了,为什么会有这么多的编码方式呢?他们有什么区别?有什么用呢?那么先让我们看几幅图片。
不同的字符集
ASCII字符集
American Standard Code for Information Interchange
(美国标准信息交换码)
ISO字符集
国际标准组织(ISO)定义了几个不同的字
符集,其中最突出的是ISO-8859-1
(通常叫做Latin-1 )
ASCII字符集是我们最熟悉的,它是一个原始的字符集,而且是到目前为止最通用的。所有的字符集都是对它的扩展。字符的编码是0~127
国际标准组织(ISO)定义了几个不同的字符集,它们是在ASCII码基础上增加了其他语言和地区需要的字符。其中最突出的是ISO-8859-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符,其中0~127的字符与ASCII码相同。
那么我们保存文件用的ANSI编码又是一个什么字符集呢?它是Windows 对Latin-1版本的扩展,使用更多的可打印字符代替介于130和159之间的非打印控制字符,从而进一步扩展了使用范围。
不同的字符集
Unicode字符集
由UNICODE协会管理并接受其技术上的修改。Unicode使用0~65,535的双字节无符号数对每一个字符进行编码。Unicode中0~`255的字符与Latin-1中的一致。
UTF-8字符集
UTF-8是一个压缩的Unicode版本
是XML的默认字符集
但是这些编码仅仅是针对罗马文字的国家,而我们需要的是一种得到大家的认可并且编码了全世界各种文字的字符集。建立这样的字符集很难,需要对成百上千种语言和文字有细致的了解。不过这方面的努力一直在进行,终于创建了一个符合要求的字符集;Unicode。而且主要卖方(微软、苹果、IBM、Sun、Be等)正逐步趋向于使用它。Unicode字符集由UNICODE 协会管理并接受其技术上的修改。Unicode使用0~65,535的双字节无符号数对每一个字符进行编码。目前已经定义了40,000多个不同的Unicode字符,剩余25,000个空缺留给将来扩展之用。其中大约20,000个字符用于汉字,另外11,000左右的字符用于韩语音节。Unicode 中0~`255的字符与Latin-1中的一致。这么庞大的字符库仍然没有覆盖全部历史上的文字,特别是亚洲东部的语言,它只定义了中国、日本、朝鲜和古越南使用的80万象形文字中的20万个左右。但大部分国家的“字母表”字母都是Unicode字符集中的一个字符。Unicode 使用双字节表示一个字符,因此使用Unicode的英文文本文件大小是使用ASCII码或Latin-1文件的两倍
UTF-8是一个压缩的Unicode版本,使用单个字节表示最常用的字符,即0到127的ASCII 字符,较少见的字符使用三个字节表示,特制是韩国音节和汉字。如果主要使用英文,UTF-8能够将文件压缩为原来的一半。如果主要使用汉语、朝语或者日语,UTF-8会使文件的尺寸增加50% 。
这是一个用java编写的输出汉字“你”和希腊字母“a”的utf-8编码的效果。到目前为止我们介绍了4种编码集