8. 使用 Java 语言对 XML 数据进行解析.PPT
文本预览下载声明
8. 使用 Java 语言对 XML 数据进行解析 Java 语言和 XML 数据格式都被认为是过去数十年中最为重要的 IT 技术之一。 Java 为编程提供了一种与平台无关的语言,从而导致了程序开发领域的一场革命。XML 为数据交换提供了一种与平台无关的表现形式,从而使得这场革命更加激烈、更加彻底。 Java 和 XML 之间存在有许多相似的特性,比如平台无关性、可扩展性、可重用性和国际化支持。XML 和 Java 常常被认为是完美的组合,使用 XML 的半结构化模型描述各种各样的业务数据、表达复杂的业务信息,后台则使用 Java 语言来实现独立于平台的、易于处理的面向对象的应用软件解决方案。 用于 XML 数据处理的 Java API IBM、Apache 以及其他许多公司,开发了很多用于 XML 数据处理的 Java API。 从 JDK 1.4 开始,Sun 公司将一些非常重要的代码库集成到了 Java2 平台之中,并不断升级更新,直到 JDK 1.6。 在尚未发布的 Java 7 中,Sun 公司努力实现对 XML 的语言级支持。 对于其它的语言也同样如此(比如 C++、Perl、.NET),作为一名程序开发人员,需要在首先了解 XML 相关技术的基础上,熟练掌握有关 XML 数据处理的程序开发技巧,才能顺利完成开发任务。 JDK 1.6 中面向 XML 的 JAVA API 用于 XML 数据处理的 JAVA API(Java API for XML Processing,JAXP)。JAXP 对应于 JDK 中的 javax.xml 包及其部分子包、org.w3c.dom 包及其子包、org.xml.sax 包及其子包; 用于 XML 数据绑定的 Java API(Java API for XML Binding,JAXB),对应于 JDK 中的 javax.xml.bind 包及其子包; 用于基于 XML 的 RPC 的 Java API(Java API for XML-based RPC,JAX-RPC),对应于 JDK 中的 javax.jws 包及其子包; 用于带附件的 SOAP 消息的 JAVA API(SOAP with Attachments API for Java,SAAJ),对应于 JDK 中的 javax.xml.soap 包及其子包; 用于基于 XML 的 Web 服务的 Java API(Java API for XML-based Web services,JAX-WS),对应于 JDK 中的 javax.xml.ws 包及其子包; 用于 XML 加密签名的 Java API,对应于 JDK 中的 javax.xml.crypto 包及其子包; 8.1 XML 数据解析的概念及 JAXP 简介 XML 解析器实际上就是能够识别 XML 基本语法形式的特殊应用程序,并将纯文本的 XML 文档转换成其他某种内存中表现形式(比如 XML 文档树、或者一系列的解析事件),以便客户端应用程序能够方便地对 XML 文档中的数据进行访问、提取、检索。 Xerces 来自 IBM 在 1999 年捐赠给 Apache 的 XML4J 项目,随后成为了 Apache XML Project 的子项目。但由于 XML 技术的迅速发展,在 2004 年,Xerces 解析器成为了 Apache Software Foundation 的顶级项目(独立项目)。 DOM 和 SAX 解析模型简介 DOM (Document Object Model)是 W3C 的规范(/DOM/),是一种与浏览器、平台、语言无关的接口,可用于表示各种半结构化的、层次模型的数据(比如 HTML、XML 等)。 SAX ( Simple API for XML )是顺序读取 XML 的解析器 API,是一个为基于事件 XML 解析器定义的、免费的、并且与平台、语言无关的 API。由 XML-Dev 邮件列表组织(由许多 XML 方面的专家和开发人员组成)开发而来,并且已经成为了一种 XML 数据处理的事实上的标准。 DOM 解析模型 DOM 是以层次结构组织的节点或信息片断的集合,是 XML 数据的一种树型表示,通过树中的各种节点、以及节点之间的父子关系来表示 XML 文档中的元素、属性、文本内容,以及元素之间的嵌套关系。这个层次结构允许开发人员在树中寻找特定信息,并对其中的数据进行修改和创建。 SAX 解析模型 SAX 解析器采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件(如图 8-2 中所示),当发生相应事件时,将调用一个回调方法,回调方法的编写是数据解析的关键。 JAXP 简介 J
显示全部