可扩展标记语言

来源:互联网 发布:比较矩阵元素 编辑:程序博客网 时间:2024/05/29 06:54

XML概述

能够直接应用在Internet上
能被各式应用软件使用
能与SGML兼容
能轻易发展XML相关软件
能简化SGML
XML文件可读性高
XML规范能尽完成
XML规范必须简洁
XML文件易于建立
语法不可模糊不清

XML的特点

简洁有效
易学易用
开放的国际化标准
高效且可扩充

XML的特点 – 开放的国际化标准

XML标准。这是W3C正式批准的,这意味着这个标准是稳定的,完全可用于Web和工具的开发。
XML名域标准。用来描述名域的句法,支持能识别名域的XML解析器。
DOM(Document Object Model,文档对象模型)标准。为给结构化的数据编写脚本提供标准,这样,开发人员就能够与计算机在基于XML的数据上进行交互。
XSL标准。XSL有两个模块:XSL转换语言和XSL格式化对象。其中转换语言可用来转换XML以满足显示要求。由于XSL的两部分是模块化的,因此,转换语言能够独立地用来进行多用途的转换,包括把XML转换成结构完整的HTML。
XLL标准和XML指针语言(XPointer)标准。XLL提供类似与HTML的链接,但功能更强大。例如,链接可以是多方向的,可以存在于对象上而不仅仅是页面上。


XML的作用

使得搜索更加有意义
开发灵活的Web应用软件
实现不同数据的集成
使用于多种应用环境
客户端数据处理与计算
数据显示多样化
局部数据更新
与现有Web发布机制相兼容
可升级性
压缩性能高



XML的应用

应用于客户需要与不同的数据源进行交互时
应用于将大量运算负荷分布在客户端
应用于将同一数据以不同的面貌展现给不现的用户
应用于网络代理对所取得的信息进行编辑、增减以适应个人用户的需要


XML与HTML的区别

HTML是一种格式化的语言,一个HTML文本可以看作一个格式化的程序
XML是一种元标记语言
XML定义了一套元句法,与特定领域有关的标记语言(例如,MusicML、MathML和CML等)都必须遵守


XML模式

XML模式使用XML语法
XML模式支持数据类型
XML模式是可扩展的
XML模式有更强的表达能力


CSS与XSL的比较

CSS只能改变特定元素的格式,也只能以元素为基础。但XSL样式单可以重新排列元素并对元素进行重排序。
CSS的优越性在于具有广泛的浏览器支持。但是XSL更为灵活和强大,可更好地适用于XML文档。而且,带XSL样式单的XML文档可以很容易地转换为带CSS样式单的HTML文档。
如果只是要对一些固定数据进行排版,可以使用“HTML+CSS”方式;如果这些数据是与某些应用程序相关,并且独立于程序存在的,并且要独立于程序来使用,则应该充分使用XML技术,采用“HTML+XML+XSL”。


API接口 – DOM

文档对象模型为XML文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以使用DOM接口来操作这个树结构。用户可以遍历树以了解原始文档包含了什么,可以删除树的几个部分,还可以重新排列树和添加新的分支,等等。
DOM提供了一组丰富的功能,用户可以用这些功能来解释和操作XML文档,但使用它们是有代价的。

DOM 构建整个文档驻留内存的树。如果文档很大,就会要求有极大的内存。
DOM 创建表示原始文档中每个东西的对象,包括元素、文本、属性和空格。如果用户只需关注原始文档的一小部分,那么创建那些永远不被使用的对象是极其浪费的。
DOM 解析器必须在代码取得控制权之前读取整个文档。对于非常大的文档,这会引起显著的延迟。


API接口 – SAX

SAX 解析器向代码发送事件。
SAX解析器根本不创建任何对象,它只是将事件传递给应用程序。
SAX解析器在解析开始的时候就开始发送事件。

SAX事件是无状态的。当SAX解析器在XML文档中发现文本时,它就向代码发送一个事件。该事件仅仅给用户发现的文本,它不告诉用户什么元素包含那个文本。如果想知道这一点,则用户必须自己编写状态管理代码。
SAX事件不是持久的。如果应用程序需要一个数据结构来对XML文档建模,则必须自己编写那样的代码。如果需要从SAX事件访问数据,并且没有把那个数据存储在代码中,那么用户不得不再次解析该文档。


API接口 – JDOM

用DOM和SAX模型完成某些任务时的困难使Jason Hunter和Brett McLaughlin感到失望,于是他们创建了JDOM 包。JDOM是基于Java技术的开放源码项目,它试图遵循 80/20 规则:用DOM和SAX的 20%的功能来满足80%的用户需求。JDOM使用SAX和DOM解析器,因此,它是作为一组相对较小的Java类被实现的。
JDOM 的主要特性是它极大地减少了用户必须编写的代码数量,JDOM应用程序的长度通常是DOM应用程序的三分之一,大约是SAX应用程序的一半。JDOM并不做所有的事,但对于大多数用户要做的解析,它可能正好适合用户的需求。


API接口 – JAXP

尽管DOM、SAX和JDOM为大多数常见任务提供了标准接口,但仍有些事情是它们不能解决的。例如,在Java程序中创建DOMParser对象的过程因DOM解析器的不同而不同。为了修正这个问题,SUN发布了JAXP,该API为使用DOM、SAX和XSLT处理XML文档提供了公共接口。
JAXP提供的诸如DocumentBuilderFactory和DocumentBuilder之类的接口,为不同的解析器提供了一个标准接口。还有一些方法可以允许用户控制底层的解析器是否可以识别名称空间,以及是否使用DTD或模式来验证XML文档。


XML建模

描述具体数据
描述数据结构和模式
描述数据的表现
描述数据中的位置
描述数据中的链接关系
描述数据的应用关系