分布式应用技术基础实验_第1页
分布式应用技术基础实验_第2页
分布式应用技术基础实验_第3页
分布式应用技术基础实验_第4页
分布式应用技术基础实验_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

陈伟陈伟 (cowoo ) 2007.5.18 分布式应用技术基础实验分布式应用技术基础实验分布式应用技术基础实验分布式应用技术基础实验 Java XML Programming 2 Outline ? What is XML ? XML Basics ? Java and XML DOM & SAX DOM 实现 JDOM&Dom4j ? 模型选择 ? 代码演示 3 Outline ? What is XML ? XML Basics ? Java and XML DOM & SAX DOM 实现 JDOM&Dom4j ? 模型选择 ? 代码演示 4 What is XML ? XML (Extensible Markup Language) 可扩展标记语言(Extensible Markup Language,XML)提供了一种 标记内容的方式,可以添加关于数据用途的信息。信息使用 XML 存储 之后,称为解析器的应用程序就能够可靠地提取相关信息,并根据不 同的需要处理。 ? XML可以用来做什么? XML 可用于各种不同的应用程序,但其实质是:XML 是一种表示数据 的方式。有时候数据是为数据库准备的,有些时候则是供人阅读的。 与这两方面应用相关的技术,比如数据验证和 XML 转换也已经随着 XML 自身一起发展起来。 ? Parser ? APIs 5 Outline ? What is XML ? XML Basics ? Java and XML DOM & SAX DOM 实现 JDOM&Dom4j ? 模型选择 ? 代码演示 XML Basics 6 XML Basics ? XML 1.0 The Root Element Elements Attributes Entity references and constants Unparsed data 7 ? Namespaces (名称空间) An XML namespace is a means of associating one or more elements in an XML document with a particular URI. ? DTD (Document Type Definition,文档类型定义) The DTD defines how data is formatted. ? XML Schema XML Schema is a newly finalized candidate recommendation from the W3C. It seeks to improve upon DTDs by adding more typing and quite a few more constructs than DTDs, as well as following an XML format. ? XSL XSL is the Extensible Stylesheet Language. It is defined as a language for expressing stylesheets. ? XSLT XSL Transformations. XSLT is the language that specifies the conversion of a document from one format to another (where XSL defined the means of that specification). ? XPath XPath provides a mechanism for referring to the wide variet of element and attribute names and values in an XML document. 12 Outline ? What is XML ? XML Basics ? Java and XML DOM & SAX DOM 实现 JDOM&Dom4j ? 模型选择 ? 代码演示 DOM ? DOM (Document Object Model) DOM(“文档对象模型”)是用与平台和语言无关的方式表示 XML 文档 的官方 W3C 标准。对于任何 Java 特定的模型,它是很好的对照。为 了值得与 DOM 标准分开,Java 特定模型应该提供比 Java DOM 实现 更优越的性能和或易用性的优势。 DOM 定义充分利用了 XML 文档不同组件的接口和继承性。这为开发 者带来了将公共接口用于几个不同类型组件的优势,但是同时增加了 API 的复杂性。因为 DOM 是与语言无关的,所以接口不需要利用公 共 Java 组件,例如,Collections 类。基本上所有流行的语言都实现 了DOM,比如Java,C+,Perl,Python和Ruby SAX ? SAX (Simple API for XML) DOM方法涉及读取整个文件并将该文件存储在一个树结构中,这样可 能是低效、缓慢的,而且很消耗资源。 SAX允许在读取文档时处理它,而不必等待整个文档被存储后才采取 操作。 在DOM和SAX中间做出选择 应用程序的目的 数据容量 数据将如何被使用 对速度的要求 15 Outline ? What is XML ? XML Basics ? Java and XML DOM & SAX DOM 实现 JDOM&Dom4j ? 模型选择 ? 代码演示 DOM 实现 ? Crimson Crimson 是基于 Sun Project X 解析器的 Apache 项目。它合并一个包 含 DTD 支持的完整验证解析器。可以通过 SAX2 接口访问该解析器, 并且 DOM 实现可以与其它 SAX2 解析器一起工作。Crimson 是在 Apache 许可证下发布的开放源码。 ? Xeceres Xerces Java 是另一个 Apache 项目。初始时,Xerces 基于 IBM Java 解析器(通常称为 XML4J)。如同使用 Crimson 一样,可以通过 SAX2 接口和 DOM 来访问 Xerces 解析器。然而,Xerces 不提供将 Xerces DOM 与不同的 SAX2 解析器一起使用的任何方法。Xerces Java 包含对 DTD 和 XML Schema 的验证支持(仅带有对 Schema 支持的最小限制)。 JAXP ? Crimson和Xeceres恩仇录 Crimson来自于Sun捐赠给Apache的ProjectX项目,Xerces来自IBM捐 赠给Apache的XML4J项目,结果Xerces胜 出,成了Apache XML小组 全力开发的XML API,而Crimon已经早就不做了,如今Xerces名满天 下,到处都是在用Xerces DOM和SAX解析器,只有Sun不服气,非要 在JDK1.4里面使用过时的Crimson,让人感觉像是在赌气一样,真是 让人可怜又可气!不过IBM发行JDK用的XML 解析器自然是Xerces。 ? JAXP(Java API for XML Processing) Sun在XML领域总是后知后觉,等到Sun重视XML的时候,XML的API 早就满天 飞了,尤其是IBM具有非常大的领先优势。不过Sun是规范 的制订者,于是参考W3C的标准制订了JAXP规范。JAXP不像Xerces 和Crimon 那样,它只是一个spec,本身是不做任何事情的,它的作用 就是提出一个统一的接口,让其它的XML API都来遵循JAXP编程,那 么用JAXP写出来的程序,底层的API可以任意切换。 18 Outline ? What is XML ? XML Basics ? Java and XML DOM & SAX DOM 实现 JDOM&Dom4j ? 模型选择 ? 代码演示 JDOM ? Why JDOM W3C的DOM标准API难用的让人想撞墙,于是有一帮人开发Java专用 的XML API目的是为了便于使用 JDOM 的目的是成为 Java 特定文档模型,它简化与 XML 的交互并且 比使用 DOM 实现更快。由于是第一个 Java 特定模型,JDOM 一直得 到大力推广和促进。 jdom 相当于上面的 JAXP接口 Xerces DOM实现部分,它本身没有 解析器,它可以使用Xerces或者Crimson的解析器,就是这样: jdom应用程序 - jdom API - Xerces/Crimson解析器 dom4j ? JDOM开发到一半的时候,另一部分人又分了出来,他们有自 己的想法,于是他们就去开发dom4j,形成了今天这样两个API (可以看出Java开源世界的一些特征) ? dom4j 和jdom类似,不过他自己绑定了一个叫做Alfred2的解析 器,功能不是很全,但是速度很快,当没有其它的解析器的时 候,dom4j将使用Alfred2解析器,如下: dom4j应用程序 - dom4j API - Xerces/Crimson解析器 或者 dom4j应用程序 - dom4j API - Alfred2解析器 ? 在SF上下载的dom4j.jar是不含 Alfred2解析器的,而dom4j- full.jar包含了 Alfred2解析器,在这种情况下,实际上你什么也 不需要,光是一个dom4j-full.jar就全部都包括了。 21 Outline ? What is XML ? XML Basics ? Java and XML DOM & SAX DOM 实现 JDOM&Dom4j ? 模型选择 ? 代码演示 模型选择 ? JDOM 和 Crimson DOM 在性能测试时一直表现不佳。在小文 档情况下还值得考虑使用 Crimson DOM。虽然 JDOM 的开发 者已经说明他们期望在正式发行版前专注性能问题,但是从性 能观点来看,它确实没有值得推荐之处。然而,如果不进行 API 的重新构建,JDOM 可能难以达到与其它模型匹配的性能 。 ? Dom4j提供了具备更标准化的优越性能和功能更全的实现,包 括对 SAX2、DOM 甚至 XPath 的内置支持。虽然 Xerces DOM(带有延迟的节点创建)对于小文件和 Java 序列化性能 不佳,但是在大多数评测时仍然出色。对于常规 XML 处理, dom4j 和 Xerces DOM 都是很好的选择,对它们的选择取决于 您认为是特定于 Java 的特性更重要还是跨语言的兼容性更重 要。 ? 如果不是那么在乎可移植性,强烈建议采用dom4j。 23 Out

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论