通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>JAVA编程>>正文 新版上线![旧版]
注:打开慢时请稍等

从XML到Java代码的数据绑定之创建类

http://www.iyit.net  日期:2006-10-13 16:35:12  来源:  点击:
参加讨论】数据绑定系列的第二篇是如何从 XML 数据限制中生成一个 Java 语言。本文通过完整的代码展现了如何生成类和代码,并提供了如何定制您自己版本的建议。还没有看过第一篇吗?第一篇,"对象,无处不在的对象", 解释了数据绑定是如何将 XML 和 Java 语言对象互为转换。它比较了数据绑定和其它在 Java 程序中处理 XML 的方法, 并介绍了一个 XML 配置文档示例。第一部分也介绍了使用 XML Schema 来约束数据。

  在深入 Java 程序和 XML 代码之前,先快速回顾一下本系列第一部分所打下的基础。

  在第一部分中,我们知道只要可以标识文档的一组约束,就可以将文档转换成 Java 对象。那些约束为数据提供了接口。如 Web 服务配置文档示例中所示,XML 文档应当成为现有 Java 类的一个实例,并且从数据约束生成那个类。最后,会看到表示样本 XML 文档约束的 XML schema。

  如果对细节还有疑问,请回顾第一篇文章.

  打造基础

  现在,可以着手从 XML schema 创建 Java 类。该类必须准确表示数据约束,并提供 Java 应用程序将使用的简单读方法和写方法。开始之前,让我们先回顾清单 1,查看为 WebServiceConfiguration 文档定义的 XML schema。

  清单 1. 表示 Web 容器配置文档数据接口的 XML schema

<?xml version="1.0"?>

<schema targetNamespace="http://www.enhydra.org"
      xmlns="http://www.w3.org/1999/xmlSchema"
      xmlns:enhydra="http://www.enhydra.org"


  <complexType name="ServiceConfiguration">
   <attribute name="name" type="string" />
   <attribute name="version" type="float" />
  </complexType>

  <element name="serviceConfiguration" type="ServiceConfiguration" />

  <complexType name="WebServiceConfiguration"
           baseType="ServiceConfiguration"
           derivedBy="extension">
   <element name="port">
    <complexType>
     <attribute name="protocol" type="string" />
     <attribute name="number" type="integer" />
     <attribute name="protected" type="string" />
    </complexType>
   </element>

   <element name="document">
    <complexType>
     <attribute name="root" type="string" />
     <attribute name="index" type="string" />
     <attribute name="error" type="string" />
    </complexType>
   </element>
  </complexType>

<element name="webServiceConfiguration" type="WebServiceConfiguration" />

</schema>

  生成代码

  开始生成 Java 代码之前,首先必须确定核心类的名称。将使用 org.enhydra.xml.binding 包中的 SchemaMapper,它是 Enhydra 应用服务器实用程序类集合的一部分。还可以将任何必需的支持类放到这个包中。

  除了类名称以外,还必须确定用来读取和创建 XML 的 Java API。如上一篇文章中所讨论过的,三种主要选择是 SAX、DOM 和 JDOM。由于 SAX 仅仅适用于读取 XML 文档,因此它不适合创建 XML。由于在打包阶段中要将 Java 对象转换为 XML 表示,因此在此阶段中需要创建 XML。这就将选择的范围缩小到 DOM 和 JDOM。在这两种选择都可用的情况下,本例中我选择使用 JDOM API,仅为了显示其功能性(并不仅仅因为我是它的合著者之一!)。

  最后,必须指出如何将 XML schema 提供给 SchemaMapper 类。通常,可以假设类的生成是脱机完成的(通过静态 main 方法)。仅通过使 main 方法调用非静态方法,还可以从运行时环境中使用类。做了这些决定后,就可以开始勾画类的框架了。



  组装 SchemaMapper 类框架

  要做的第一件事就是为要生成的代码设置一些基本存储器。必须能够从每个执行映射的 XML schema 生成多个接口和实现。Java HashMap 正好满足要求。键是接口或实现名称以及映射表中的值,该值是将要输出到新 Java 程序文件的实际代码。还需要存储每对接口/实现的属性(属性是在这两种类之间共享的)。这里,我再次使用 HashMap。其中,键是接口名称。但是,由于每个接口可能有多个属性,因此该值是另一个具有属性及其类型的 HashMap。最后,必须存储 XML schema 的名称空间,因为 JDOM 将使用这个名称空间来访问 XML schema 中的结构。所有这些具体信息都足以初步勾画出新类的框架,新类在清单 2 中。

本新闻共5页,当前在第1页  1  2  3  4  5  


编辑: [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:java缓冲区溢出编程心得
下一篇:没有了
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
用C#把文件转换为XML java缓冲区溢出编程心得 php里怎么实现javascript的unescape函数
简单的xml留言簿 有谁知道去除一个文本中的所有空格,用 SQL Server2005的XML数据类型之基础篇
初学Javascript之cookie篇(译) JavaScript对象与数组参考大全 用Javascript 实现的Dual listbox
javascript版的日期输入控件 用 JavaScript 来操作字符串 一个非常实用的Javascript类库
如何利用IE进行JavaScript脚本调试 JavaScript常用检测脚本 javascript 经典函数
Email地址加密javascript版 JavaScript方法和技巧大全 搜索引擎页面分析中的 javascript 处理
[JAVA]十四种Java开发工具点评 初学java常用开发工具介绍 Java编程中更新XML文档的常用方法
用Java实现HTTP文件队列下载 Singleton在Java中的应用 Java学习从入门到精通 4方法篇
最新更新 热点排行 推荐新闻
从XML到Java代码的数据绑定之创建类
java缓冲区溢出编程心得
完美解决一个事件激活多个函数(2)
初学Javascript之cookie篇(译)
JavaScript对象与数组参考大全
我的QQ被盗走的原因分析
WebQQ好玩不?大鸟带你一起体验
奇奇怪怪的QQ密技十五招
QQ被盗到出售过程详解
微软WinXP SP3再次跳票 推至08年发布
Google苹果合作浏览器 防恶意网站
微软操作系统实现开源?
网管应当如何管理Windows操作系统?
让Windows XP系统锁定期间拒绝关机
WindowsVista中文版11月30日正式发布
从XML到Java代码的数据绑定之创建类
java缓冲区溢出编程心得
完美解决一个事件激活多个函数(2)
初学Javascript之cookie篇(译)
JavaScript对象与数组参考大全
合并VCD片断、快速删除文件夹--DOS命令
DOS教程 DOS命令基础应用
低格、分区、高格的应对--DOS命令应用
破解QQ密码如此简单 
一劳永逸--批处理命令(一)
QQ2006 Beta3隆重发布 实用功能一一奉
美国微软总部相中重庆15岁网络奇才(图
QQ号码激活的常见问题及案例分析 
SQL Server安装文件挂起错误解决办法
三分钟让你的系统变处女:Acronis Tru
给年轻工程师的“十大忠告” 
vbscript和javascript互相调用 
我的QQ被盗走的原因分析
WebQQ好玩不?大鸟带你一起体验
奇奇怪怪的QQ密技十五招
QQ被盗到出售过程详解
Google苹果合作浏览器 防恶意网站
网管应当如何管理Windows操作系统?
让Windows XP系统锁定期间拒绝关机
WindowsVista中文版11月30日正式发布
Google优化网站管理员指导方针
Hilltop算法- 探索Google排名新算法

vbscript和javascript

设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息