今天学习了XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。
XML和HTML的不同:
1 XML扩展性比HTML强
XML的标记语言可以自定义,这样可以提供更多的数据操作,而不像HTML一样,只能局限于按一定的格式显示出来。HTML的功能只有浏览器放入显示和打印,仅仅适合静态页面的要求。
2 XML的语法比HTML严格
由于XML的扩展性强,它需要稳定的基础规则来支持扩展。它的严格规则为:
1、起始和结束的标签相匹配
2、嵌套标签不能相互嵌套
3、区分大小写
4、属性值需要被引号声明。
5、当标签中的数据不需要被解析时,将该数据存储在CDATA区域中。<![CDATA[不需要被解析的数据]]>
相对应XML的严格规则,HTML语言并没有规定标签的绝对位置,也不区分大小写,而这些全部由浏览器来完成识别和更正。
3,XML常用于配置信息存储。
建立配置有两中方式:
1,以键值对形式存储的ini文件。name=value.
通过流的形式对文件进行加载,通过Properties对数据进行获取。
2,xml文件。
使用指定的解析方式(DOM,SAX)对数据进行获取。
4,XML有特定的格式:<?xml version="1.0" encoding="gbk|utf=8" standalone="yes" ?>
encoding 说明文档的字符编码 standalone 说明文档是否独立
如果encoding与standalone同时出现,stadalone必须在encoding后面
5,对于XML标签中出现的所有空格和换行,XML解析程序都会当作标签内容进行处理。
处理指令是用来给处理XML文档的应用程序提供信息的,XML解析器把这些信息原封不动地传给应用程序,由应用程序来解释这个指令,遵照它所提供的信息进行处理。处理指令应该遵循下面的格式:
<? 处理指令名 处理指令信息?>
XML元素命名规范:
不能以数字或下划线开头
不能以xml(或XML、或Xml 等)开头
不能包含空格
名称中间不能包含冒号(:)
转义字符:
对于一些单个字符,若想显示其原始样式,也可以使用转义的形式予以处理。
XML约束:
在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束,常用的约束技术有两种:
DTD:约束模式文件。可以标记型文档进行约束。后缀为.dtd
Schema:以xml规则及语法来定义约束模式。后缀为.xsd。
命名空间:
自定义标签容易出现相同标签表示不同内容的情况。通过声明该标签所属的空间,以示区分。在定义空间名称的时候,通常以url来定义,为了保证空间的唯一性。
XML文档解析:
对标记型文档,标准化组织指定了简便的解析方式:
1,DOM解析l
原理:将标记型文档封装成对象。document。 DOM树,根节点。节点
将标记型文档中的元素,属性,及其他组成部分也封装成对象。
封装对象好处:可以对该事物进行描述,定义属性和行为。
那么有了对象,就可以指挥对象做事情。
可以对标记型文档进行修改。
当标记型文档体积超大的时候,DOM解析会比较慢,原因是:必须先将DOM树加载进内存。
2,SAX解析:
原理:基于事件驱动的解析方式。
并一行一行的解析标记型文档。
只能读取文档数据。不可以做修改动作。
对大体积的文档它的效率要比DOM快。
为了方便于程序员对标记型的解析,针对于每一个高级语言比如java都提供了解析工具。
JDOM:较为少用。
DOM4J:较为常用的解析工具。
JAXP:javase中提供的解析工具,它有基于两种解析方式的对象。