当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

从XML到Java代码的数据绑定之一 对象,无处不在的对象[Java编程]

赞助商链接



  本文“从XML到Java代码的数据绑定之一 对象,无处不在的对象[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在这个由四部份构成的系列文章的第一部份,我们将弄清什么是数据绑定,与在 Java 利用程序中处理 XML 数据的别的办法相比它有什么上风,以及若何开始利用它.这一部份将观察为什么利用数据绑定,以及如作甚各种约束成立模子,使 XML 文档能转换成 Java 对象.同时还涵盖用于生成数据绑定类的输入和输出.

您但愿在您的 Java 利用程序中利用 XML 吗?那么好,同不计其数的其他人一同上这条船吧.当您深化理解 XML 今后,大概您会发现 DOM 和 SAX API(请参阅 参考资料)不过是唬人的东西.您大概认为 必定 存在某种简单办法可以获得 XML 文档,并通过 Java 利用程序拜候它,对吗? 没必要通过回调或复杂的树状构造,而是利用像 setOwner(Stringowner) 和 int getNumOrders() 这样的办法,对吗?假如您曾经沿着这一思绪考虑问题,那么数据绑定就是您要探求的办理筹划.

解析各种挑选

当今各种 XML 和 XML 主义正泛滥成灾(XSL、RDF、命名空间、RSS、XML Schema、XSLT...),您大概认为目前会有很多办法去拜候 Java 利用程序中的 XML 数据.令人惊奇的是,假如您寻根究底,实际只存在三种拜候 XML 数据的办法.没错 -- 只有三种办法,此中的一种还是近来随一种新的 Java API 才呈现的.

应当这样来对待这一问题:挑选范围小使您更易于选出合适于您的办法.

回调

回调是作为一种事件驱动模子工作的.当解析 XML 文档时,某些事件 -- 如文档的起始和某个元素中的字符数据的起始 -- 将触发回调办法.通过利用履行逻辑所需的数据,您可以实现这些事件的 Java 代码.要弄清这种办法不能全靠直觉;开辟人员普通要耗费一段时间来理解和掌握回调模子的利用.SAX,用于 XML 的一种简单 API,是这种 XML 利用办法的事实上的尺度.

更常见、更风行的是这种 API,它们获得一个 XML 文档,然后成立数据的树状构造.XML 文档成为树首,充当一种容器.它有若干子级,如根元素.根元素又有其附加的子级,依此类推,直到(在某种意义上)得到 XML 数据的一幅图为止.因为几近每个大学生在某个阶段必定都处理过树状构造,所以这便可用作表示 XML 数据的一种非常直观的办法.

用于 XML 文档树状表示的最风行的 API 就是 W3C 的举荐尺度,即文档对象模子 (DOM).一种更新的 API,JDOM (这不是首字母缩写词)近来也正一向在奉行并风行开来. (固然这个筹划是我和 Jason Hunter 成立的,但我还得说真话.)别的,DOM 和 JDOM 都是 Spinnaker 筹划计划的基本要求,Spinnaker 是一种新的 XML 解析器,它作为 Apache XML 筹划的一部份正在开辟之中.

固然树状 API 看起来比事件驱动的 SAX 更易于利用,但它们并不老是符合的.非常大的文档大概需求大量的内存(特别是利用 DOM 时);当对树构造履行转换 (XSLT) 时,系统大概终止运转乃至完好崩溃. 固然更新的 API(如 JDOM)能处理这些问题,但假如您必须处理极大量的数据,它们仍将是一个问题.并且,有时开辟人员甘愿将 XML 文档中的数据建模为一个简单的带有值的读写办法的 Java 对象,而不用树状模子工作.比方,开辟人员会甘愿不去拜候名为 skuNumber 的子节点并设置该节点的文本值,而只想调用 setSkuNumber("mySKU") 并持续举行.

数据绑定

用 Java 代码拜候 XML 数据的最新办法要依靠于一套新的 Java 办法和相关的 API,这些 API 仍在开辟之中.数据绑定是由 Sun 构建的一种“Java 标准要求”(JSR-031,见 参考资料),它计划用于使 Java 对象 绑定到 XML 文档越发便利,这样就使一种格局可以简单地转换为另一种格局,反之亦然.绑定引用一个具有读写办法的 Java 对象,读写办法城市影响到底层的 XML 文档,并且也都直接映射为 XML 文档中的元素及特点的名称.当您进入到本系列文章下一部份中的某些细节时,这一阐明会更有意义,但在目前,只说一点就够了:这样做使 XML 文档特点 name 可以通过一个称为 setName() 的办法,来更改它的值,就像我上面表示的那样.

这种拜候方法正在得到遍及,并且当在 XML 文档中存储配置信息时分外有效.很多开辟人员发现,它非常便于直接拜候所需的参数,而无须利用更复杂的树状构造.固然这种拜候关于文档转换或消息传送没有什么用处,但它关于简单数据处理是极端便利的.它是我们在本文及本系列文章中关注的第三种利用 XML 的办法.

(当然,任何办法随后城市引出一系列新的术语,所以请查看 术语注释以理解这些新的行话.)

能否任何 XML 文档都可以转换为 Java 对象?还是唯一某些范例的 XML 文档才可以? 问得好!您极大概只但愿将满意一组约束条件的文档转换为 Java 对象.这与定义 Java 接口的办法近似:您确保只实例化和利用适应当接口的对象,答应就若何操作该对象作出假定.一样,您只答应将满意一组约束条件的 XML 对象转换成 Java 对象;这使您可以按但愿的方法来利用所成立的对象.


  以上是“从XML到Java代码的数据绑定之一 对象,无处不在的对象[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 从XML到Java代码的数据绑定之一 对象,无处不在的对象
  • 从XML到Java代码的数据绑定之二 从XML数据成立类
  • 从XML到Java代码的数据绑定之三 从文本到字节码
  • 从XML到Java代码的数据绑定之四 从无用的字符到有效的代码段
  • 用Java从XML文件中得到业务图表
  • 顺服Tiger: 从XML中装载属性
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .