XML 和 Java:一个强大的组合

xml

XML当它在1996年11月首次由WWW小组( W3C)提出时就是一个能够被很好接受的规范。现在,它与Java从本质上的结合--即把Java程序中的与XML相关的代码部分和对Java语义(动作)编码的部分转换成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开发者就可以使用这个标准扩展来建造基于XML的应用了。这个标准扩展包括一些组件:一个解析器,解析器中的名字空间支持,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)和映射回对象(marshaling)是一样重要的。对于映射和反映射Java代码的XML消息组件来说,对它们有用的是一些类,Cable和Reinhold感觉到SAX和DOM都不能解决这个问题。   但是绑定可以解决这个问题,至少在理论上是这样的。使用绑定将XML模式编译成Java的类,允许对象能和XML消息任意地相互进行映射。绑定产生了类,这些类包涵了映射和反映射的代码(允许完善的错误和合法性检查)和访问组件的方法(get和set),使得数据元素自动的和模式保持一致性。绑定XML到Java程序也消除了书写反映射(unmarshal)的必要,减少了输入错误数据的可能性。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(或相反)提供J2EE编程模型的语法基础。Sun也积极地参与W3C和其它开放XML组织,诸如XML.org 和OASIS(the Organization forthe Advancement of Structured Information Standards)。

时间: 2024-10-02 22:16:59

XML 和 Java:一个强大的组合的相关文章

XML、Java与XMLBeans结合应用的商业价值

通过阅读本文,您将了解面向服务的架构(Service-Oriented Architecture,SOA).XML 和 XMLBeans 如何在解决实际商业问题中发挥重要作用及其原因,文中将以娱乐业为例进行案例分析.本文的目的并不在于介绍代码,而是让您了解在需要使用 XML 时如何使用 XMLBeans 及其原因. 面对日益升级的软件复杂度,企业架构师的注意力逐渐集中到了一种能够解决系统集成问题的方法 -- 面向对象的架构(SOA).从本质上来说,SOA 就是要通过增强业务与信息技术(IT)的运

毕加索的艺术——Picasso,一个强大的Android图片下载缓存库,OkHttpUtils的使用,二次封装PicassoUtils实现微信精选

毕加索的艺术--Picasso,一个强大的Android图片下载缓存库,OkHttpUtils的使用,二次封装PicassoUtils实现微信精选 官网: http://square.github.io/picasso/ 我们在上篇OkHttp的时候说过这个Picasso,学名毕加索,是Square公司开源的一个Android图形缓存库,而且使用起来也是非常的简单,只要一行代码就轻松搞定了,你会问,为什么不介绍一下Glide?其实Glide我有时间也是会介绍的,刚好上篇我们用到了Picasso,

XML到Java代码的数据绑定之对象

xml|对象|数据 在这个由四部分组成的系列文章的第一部分,我们将弄清什么是数据绑定,与在 Java 应用程序中处理 XML 数据的其它方法相比它有什么优势,以及如何开始使用它.这一部分将考查为什么使用数据绑定,以及如何为各种约束建立模型,使 XML 文档能转换成 Java 对象.同时还涵盖用于生成数据绑定类的输入和输出. 您希望在您的 Java 应用程序中使用 XML 吗?那么好,同成千上万的其他人一起上这条船吧.当您深入了解 XML 以后,也许您会发现 DOM 和 SAX API(请参阅参考

Java 中的 XML:Java 文档模型的用法

xml 在本系列的第一篇文章中,我研究了一些用 Java 编写的主要的 XML 文档模型的性能.但是,在开始选择这种类型的技术时,性能只是问题的一部分.使用方便至少是同样重要的,并且它已是一个主要理由,来支持使用 Java 特定的模型,而不是与语言无关的 DOM . 为切实了解哪个模型真正的作用,您需要知道它们在可用性程度上是如何排名的.本文中,我将尝试进行这个工作,从样本代码开始,来演示如何在每个模型中编码公共类型的操作.并对结果进行总结来结束本文,而且提出了促使一种表示比另一种更容易使用的一

XML 和 Java 技术: 数据绑定的多种用法

xml|数据 除将 XML 用作一种简单数据格式之外,数据绑定是 XML 最流行的用法之一.即使刚刚入门的程序员也能在一种原生编程语言中使用 XML,并且在大多数情况下完全不需要任何的 XML 专门知识.本文并不是介绍解决方案,取而代之,Brett 介绍了一些讨论主题,鼓励您思考如何使用 XML 和数据绑定.欢迎在 XML 和 Java 技术讨论论坛上与别人一起分享您的想法. XML 用于业务而非技术 随着 XML 的日趋盛行,人们也越来越注重可用性.换句话说,程序员和管理者并不希望把 XML

从XML到Java代码的数据绑定之对象【来自JAVA家】

xml|对象|数据 在这个由四部分组成的系列文章的第一部分,我们将弄清什么是数据绑定,与在 Java 应用程序中处理 XML 数据的其它方法相比它有什么优势,以及如何开始使用它.这一部分将考查为什么使用数据绑定,以及如何为各种约束建立模型,使 XML 文档能转换成 Java 对象.同时还涵盖用于生成数据绑定类的输入和输出. 您希望在您的 Java 应用程序中使用 XML 吗?那么好,同成千上万的其他人一起上这条船吧.当您深入了解 XML 以后,也许您会发现 DOM 和 SAX API(请参阅参考

从XML到Java代码的数据绑定之对象

xml|对象|数据 在这个由四部分组成的系列文章的第一部分,我们将弄清什么是数据绑定,与在 Java 应用程序中处理 XML 数据的其它方法相比它有什么优势,以及如何开始使用它.这一部分将考查为什么使用数据绑定,以及如何为各种约束建立模型,使 XML 文档能转换成 Java 对象.同时还涵盖用于生成数据绑定类的输入和输出. 您希望在您的 Java 应用程序中使用 XML 吗?那么好,同成千上万的其他人一起上这条船吧.当您深入了解 XML 以后,也许您会发现 DOM 和 SAX API(请参阅参考

XML和Java技术

必须将 XML 存储在某个地方 XML 是一种伟大的数据格式 - 显 而易见,整个 IBM developerWorks 专区都在专注于研究这个主题.2007 年, 关于 XML 的讨论多半是 Web 服务,或者 XML 和 Java 对象之间的转换 ,或者读取 XML 配置文件,或者甚至是使用 XML 格式的数据库代替关系或面向 对象的数据库. 目前,我们还没有听到有人在谈论如何将所使用的内存表示 - DOM. JDOM 等等 - 中的 XML 保存到静态文件中去,并在其中填满尖括号和引 号.

从XML到Java代码的数据绑定之四 从无用的字符到有用的代码段

在本系列的上一部分中,我演示了如何取出 XML 文档并将它转换成 Java 表示.这种变换的关键是 XML 文档符合的 XML 模式.模式不仅确保了强制约束.它还允许使用 SchemaMapper 来生成 Java 类:那么 XML 文档就可以解包成那些类其中一个的实例.换句话说,这个系统不仅需要 XML 文档:文档将变成其实例的 Java 类不仅必须已经存在,而且它还必须在系统的类路径中. 打包类 打包 Java 实例时,情况稍有不同.首先,Unmarshaller 类不存储关于在所创建的 J