设为首页 加入收藏

TOP

XML和Java:低级或高级的XMLAPI
2014-11-23 20:06:58 】 浏览:609
Tags:XML Java: 低级 高级 XMLAPI

  XML 是关于灵活性的


  不需要详细研究 XML 起源的长期历史原因,在开始这个讨论话题之前我想再次重申 XML 最初确实是关于灵活性的。XML 提供了一种供应商中立的格式来表示数据。根据对 XML 规范内容和要求的一致理解,应用程序可以轻易生成这种格式,并且其它应用程序也可以方便地使用这种格式。


  以更通俗的语言来说,如果您告诉我您使用的是 XML,然后再告诉我您所使用的元素和属性,我很快就能写出能读取和使用 XML 的代码来。反过来也一样,如果我向您提供了我的约束模型 (constraint model)(通常为 DTD 或者 XML Schema 格式),您就能够很快地操作我的数据。


  最初的 API 可以维持这种灵活性


  不足为奇,当 XML API 刚开始出现的时候,它们都非常的简单。最初版本的 Simple API for XML(SAX)和文档对象模型(Document Object Model,DOM)只具备非常基础的操作。您可以从某个元素中获得数据,操作其子元素,找出某个属性的值等,全部都是这方面的操作。除了处理 XML 的词汇结构之外,这些 API 并未提供大量的特性。


  在 XML 发展的初期,这被认为是件好事。这非常像过去程序员对 C 语言和汇编语言做的一样,以对计算机中底层的比特和字节维持最大控制,SAX 特别适合于处理原始的 XML 文档 ―具有基本格式的数据 ―并允许您的程序完成需要的操作,而不需要花费业余时间研究这些 XML API。


  然后出现了包装 API


  首次告别低级控制 ―从理论上说实现了开发人员友好的 API ―的是 JAXP,Sun 公司用于处理 XML 的 Java API。最初,JAXP 的目标是从 SAX 和 DOM 代码中移除一些特定于供应商的信息(涉及到所使用的 XML 解析器)。


  然而,为了努力提供一些便利,JAXP 提供了几个辅助方法(helper method),从本质上说就是把 SAX 和 DOM 中已有的功能封装起来。因为 Sun 公司在 Java 市场上影响如此巨大,所以开发人员很快就开始使用这些辅助方法了,并且很少再直接操作 SAX 和 DOM 了 。


  程序员仍然需要了解 SAX 的基本原理(如什么是 ContentHandler 以及如何实现回调方法),但是 JAXP 抽象出了很多这样的细节。事实上,要执行特定的动作,如设置一些 SAX 中不常见的词汇句柄,我们不得不 绕开 JAXP 而直接操作 SAX。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java中的前期绑定和后期绑定 下一篇微软Java虚拟机允许读取本地文件

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目