快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
被定义类型的名称的首字母大写,并将这些 Java 属性添加到接口中即可,如清单 3 所示。

清单 3. 为 ServiceConfiguration 接口而从 XML 方案生成的 Java 代码

public interface ServiceConfiguration { public void setVersion(float version); public float getVersion(); public void setName(String name); public String getName(); }

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

时间:2010-12-02

这是相当明白易懂的; 清单 3中的接口为 XML 方案中定义的属性提供读方法和写方法。另外,您将需要生成一个实现类来定义此接口的各个成员变量,并实现此接口中的每个方法。这种使接口从实现中分离出来的方法使我们能够为特定的需要提中供多种实现。 例如,某个特定的服务可能需要执行计算,而不只是接受从写方法中收到的值。 现在考虑那种更复杂的情况还有点为时尚早,但我将在后续文章中重新提到它。然而,一般说来,您仍可以确定实现类应该像什么样子,如清单 4 所示。

清单 4. 为 ServiceConfiguration 实现而从 XML 方案生成的 Java 代码

public class ServiceConfigurationImpl implements ServiceConfiguration { private String name; private float version; public void setVersion(float version) { this.version = version; } public float getVersion() { return version; } public void setName(String name) { this.name = name; } public String getName() { return name; } }

相同的原则也适用于 XML 方案中定义的其它对象。您可以在下面查看到其它 Java 类(因为它们都是应该生成的):

PortType.java (文章开始的源代码包中附源码)

PortTypeImpl.java (文章开始的源代码包中附源码)

DocumentType.java (文章开始的源代码包中附源码)

DocumentTypeImpl.java (文章开始的源代码包中附源码)

WebServiceConfiguration.java (文章开始的源代码包中附源码)

WebServiceConfigurationImpl.java (文章开始的源代码包中附源码)

总结

到目前为止,您应该对数据绑定的各个方面都比较熟悉了。 我已初步介绍了您应该使用数据绑定的原因,尤其是在配置信息的范围内,并概述了为实现此方法您所需要了解的一些基本概念。

此系列文章的下一篇将继续考察数据绑定的过程。您将有机会去检查 org.enhydra.xml.binding.SchemaMapper 类,它将接受这第一部分中创建的 XML 方案作为数据接口,并从它创建出一个 Java 接口和实现类。本系列文章的第二部分将详细说明这一过程的每个步骤,并说明如何确保方案被准确表示,以便 XML 文档能接着被转换为生成的类的实例。

梳理一下您学到的 XML 方案和 JDOM (我将在示例代码中使用它们),下个月再见!

本文配套源码

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号