快速业务通道

从XML到Java代码的数据绑定之一 对象,无处不在的对象 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
响到底层的 XML 文档,并且也都直接映射为 XML 文档中的元素及特征的名称。当您进入到本系列文章下一部分中的某些细节时,这一说明会更有意义,但在目前,只说一点就够了:这样做使 XML 文档特征 name 能够通过一个称为 setName() 的方法,来更改它的值,就像我上面暗示的那样。

这种访问方式正在得到普及,并且当在 XML 文档中存储配置信息时特别有用。许多开发人员发现,它非常便于直接访问所需的参数,而无须使用更复杂的树状结构。虽然这种访问对于文档转换或消息传送没有什么用处,但它对于简单数据处理是极其方便的。它是我们在本文及本系列文章中关注的第三种使用 XML 的方法。

(当然,任何方法随后都会引出一系列新的术语,所以请查看 术语解释以了解这些新的行话。)

是否任何 XML 文档都可以转换为 Java 对象?还是仅有某些类型的 XML 文档才可以? 问得好!您很可能只希望将满足一组约束条件的文档转换为 Java 对象。这与定义 Java 接口的方法类似:您确保只实例化和使用适应该接口的对象,允许就如何操作该对象作出假定。同样,您只允许将满足一组约束条件的 XML 对象转换成 Java 对象;这使您能够按希望的方式来使用所创建的对象。

从XML到Java代码的数据绑定之一 对象,无处不在的对象(2)

时间:2010-12-02

附:术语解释

数据绑定。从 Java 应用程序内部访问 XML 数据的一种新方法,使用仍在开发中的一种 API,JSR-031。

JSR-031。Sun 仍在开发中的一种新的 Java 规范请求,设计用于将 XML 文档编译成一个或多个 Java 类,而在 Java 应用程序中可以方便地使用这些 Java 类。

打包 。 将 Java 对象转换为 XML 表示,拥有当前值。

解包 。 根据 XML 对象创建 Java 对象,通常是根据打包生成一个 Java 对象。)

约束数据

在研究代码之前,您需要回答几个有关如何表示 XML 数据的问题。这是数据绑定的最具挑战性的方面之一。是为每个文档创建一个新类,还是创建某个现有类的一个实例?您要使用哪个现有类?并且最重要的是,您正在处理的文档是否适宜转换为 Java 对象?

那是一大堆问题,但您将在这里找到全部答案。将这些问题看作一系列决策点,一系列选择。首先,您必须确定您能否从该 XML 文档创建 Java 对象(如前面所讨论的那样)。如果能,您就要决定转换应该以新 Java 类的形式出现,还是仅以现有类的一个实例的形式出现。最后,如果选择了现有类,那么使用哪个类呢?结果就是各种各样的决策树。

如果我们考察清单 1 中所示的一个示例 XML 文档,然后再来处理这些问题,则决策树的意义就更加清楚了。此示例文档表示 Enhydra Application Server 中某个服务(具体说就是一个 web 容器)的配置。

清单 1. 一个用于配置 Enhydra 中的 web 容器的 XML 文档

<?xml version="1.0"?> <webServiceConfiguration version="1.0" name="My Web Container" > <port number="80" protocol="http" protected="false" /> <document root="/usr/local/enhydra/html" index="*.html,*.xml" error="error.html" /> </webServiceConfiguration>

此配置文档包含有关服务本身的版本和名称的信息,以及几个嵌套的项目,每个项目都表示有关该 web 容器服务的一些附加信息。它给出了有关端口的详细信息(包括端口号、协议和安全性),也给出了文档服务信息(包括文档根、用于索引页的默认扩展名以及错误页)。所有这些合在一起,就是配置一个新的 web 容器服务所需的全部信息。

记住这个示例,您就可以开始回答数据表示的各个问题了。

是否适合转换?

绝对适合!只要看一看 清单 1中的 XML

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号