Java 版 (精华区)
发信人: kaola (我要学习!), 信区: Java
标 题: XML 和 Java:一个强大的组合
发信站: 哈工大紫丁香 (2001年09月05日20:12:04 星期三), 站内信件
XML 和 Java:一个强大的组合 作者:阿霏 发布时间:2001/03/20
文章摘要:
开发者们都因为能将有潜质的XML与Java的可编程性广泛地相结合这一可能性而感到
激动,(XML是一种基于SGML的元标记语言,为Web和其它网络计算体系结构所优化而形
成的),XML-Java技术大会被紧紧地塞满了,以至于大会只好在第二天为那些第一天错
过的人重复一遍。与会者学到了为什么XML的语法标准与Java的可移植性是能如此自然结
合的并且这相互协同作用的一对如何来创建从个人到企业级的应用。
----------------------------------------------------------------------------
----
正文:
XML 和 Java:一个强大的组合
Mariva H. Aviram
阿霏 译
XML当它在1996年11月首次由WWW小组( W3C)提出时就是一个能够被很好接受的规
范。现在,它与Java从本质上的结合--即把Java程序中的与XML相关的代码部分和对J
ava语义(动作)编码的部分转换成XML的标记,承诺能够向企业或更高层提供更简单和
更具创造力的应用计算。Larry Cable 和 Mark Reinhold 是Sun公司的两名老资格的工
程师,他们在最近召开的JavaOne开发者大会的"Java平台上的XML"技术会议部分发言,
根据他们的发言,关注这种技术联姻的主要原因是基于XML的语法提供了一种灵活的、标
准的、健壮的Java编程方案,同时,Java也将一种普遍的语义集合应用于XML数据。
为什么用XML?
很多在电子世界里可用的信息都没有被存储成和表述成图象、三维图形、电影、声
音或其它易于接收的多媒体格式,相反,它以基于字符文本的形式存在于Web、数据库和
其它文本很可能存在的地方。XML允许开发者在一个标准的结构中以上下文来考虑并且解
释他们的数据,以便于每一次添加和更新的时候,一个XML框架下的数据集可以与另一个
XML框架下的数据集相结合而不用重建整个结构。
Java是如何适用于这个蓝图的?
XML为Java的语义(行为)提供了一种普遍的语法,简单的说就是,这意味着一个开
发者可以为不同的数据类型创建描述,使得这些数据在Java的程序代码中表现出不同的
行为,并且以后可以重复使用和修改这些描述。既然Java和XML都是可移植的标准,这两
种技术结合的结果也是可移植的,可以重用数据和移植行为。单独使用XML或Java所能获
得的所有的潜力还没有被完全掌握,将它们结合就走进了一个巨大的新的国度。现在,
将XML应用于Java的两个主要的应用是面向表示的出版业和企业中面向消息的中间件技术
。特别是,XML可以和Java结合产生诸如复杂的Web文档、动态出版、电子商务、企业应
用集成和结构信息管理与检索等应用。
XML标准扩展
XML标准扩展是一种基础性的探索,用它来将XML语法翻译成Java。这种探索的技术
和结构细节还在剖制之中,1999年底Java开发者就可以使用这个标准扩展来建造基于XM
L的应用了。这个标准扩展包括一些组件:一个解析器,解析器中的名字空间支持,XML
的简单API(SAX)和文档对象模型(DOM)。
解析器就是一个软件模块用来解析或者是读入一个XML文档的数据并且检查其合法性
。名字空间,W3C的XML规范的一部分,指在一个文档类型定义(DTD)中定义了一组与其
它不同的XML标记元素集。名字空间的主要益处是它允许多个变量(在不同的标记集合中
并且行为也不一样)能够在一个单独的文档实例中混合。很显然,为了获得这种益处,
解析器必须支持名字空间,Sun Microsystems还在为这种支持而作工作。
SAX,一个为基于事件XML解析器定义的可以免费获得的,平台、语言无关的API,允
许程序和脚本动态的访问和更新内容、结构和文档风格。所以,它作为一个中间件层用
来把XML文档中的数据解释成相应的Java事件。
DOM为解析器提供一个基于树型的数据结构接口,将XML数据构建成对象并且允许对
象间相互结合、访问、操纵,例如通过Java程序。
XML标准扩展规范的公共草稿和alpha发行版将在今年(1999)第三季度问世,Sun打
算在第四季度发行最终版。 当所有这些问题被消除之后,Sun计划考虑支持转变语言(
transformation language)和样式页(XSL)以及XML查询语言,这个语言允许查询XML
文档。
XML数据绑定标准扩展
Sun和其它XML-Java倡导者都认为XML标准扩展对于高效地使用XML和Java是不够的
,为什么呢?尽管XML可以提供Java所使用的数据的语法并且按照这个语法行事,但是据
说XML消息的语法在本质上是没有意义的,而且它缺乏对某一块数据是什么和如何使得这
块知识适合整个信息系统这样的特定的知识。数据绑定标准扩展使用了模式(schemas)
,是XML的子规范,它描述了XML文档所使用的特定的机构和数据类型。Java程序员可以
联系这种相似之处:一个XML消息继承于一个XML模式,跟Java对象是一个Java类的实例
是同样的。模式通过约束XML文档和数据的结构与内容来给它们添加含义,并且通过描述
概念上的意思使得一个人而不仅仅是机器只要简单的浏览一下其结构就知道它是做什么
的。理解模式只是数据绑定的一个开端,据Cable和Reinhold说,为了从XML-java结构
和编程混合体获得更多,从对象映射到XML消息组件(unmarshaling)和映射回对象(m
arshaling)是一样重要的。对于映射和反映射Java代码的XML消息组件来说,对它们有
用的是一些类,Cable和Reinhold感觉到SAX和DOM都不能解决这个问题。
但是绑定可以解决这个问题,至少在理论上是这样的。使用绑定将XML模式编译成J
ava的类,允许对象能和XML消息任意地相互进行映射。绑定产生了类,这些类包涵了映
射和反映射的代码(允许完善的错误和合法性检查)和访问组件的方法(get和set),
使得数据元素自动的和模式保持一致性。绑定XML到Java程序也消除了书写反映射(unma
rshal)的必要,减少了输入错误数据的可能性。Sun公司的工程师们打算在Java平台上增
加一个这样的绑定工具,尽管他们还没有公布具体日期。
现在就尝试使用它
你现在就可以下载Java Project X Technology第二发行版的二进制代码或源代码,
Java Project X Technology是一个基于Java-XML技术服务包的名字。这个服务包包括
一个快速的XML解析器,这个解析器带有可选的认证和一个支持W3C DOM Level 1 建议的
内存内的对象模型树。根据Sun的Java Project X FAQ,Project X 是一个"开发面向XML
的应用与服务的高性能、模块化、可扩展的Java API",试用一下证明这是真的。
Sun和其它看好XML的行业 不仅仅是Sun公司,一些技术开发者也正在为他们的合作
伙伴和顾客架起XML和Java的桥梁。例如,Bluestone软件公司,他们专注于企业的交互
管理,在他们的Bluestone XML工具集中就支持XML的Java标准扩展。NetPost是一家使用
Java组件模型来开发、提供跨媒体出版解决方案的公司,他们为所有在他们信息系统中
的数据使用XML,作为一个"综合的标准数据表示"。Oracle也在这个领域开发了一些产品
,包括Java的XML解析器,XML类产生器,和Java的XSL处理器。
对于一个Java开发者学习XML或至少探索一下它的可能性还是很有益处的。Sun的工
程师们已经在Java2平台中使用XML了。例如,XML已在JavaHelp API中使用,用来描述元
信息;它也被用来描述EJB1.1中的部署描述符;它通过解释EJB到JSP(或相反)提供J2
EE编程模型的语法基础。Sun也积极地参与W3C和其它开放XML组织,诸如XML.org 和OAS
IS(the Organization forthe Advancement of Structured Information Standards)
。
作者会员名:guo_jerry
--
我怕水,我怕谁?
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.247.126]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.798毫秒