快速业务通道

从XML到Java代码的数据绑定之二 从XML数据创建类 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
ementationCode.append("public class ") .append(implementationName);      // Add in extension if appropriate if (baseType != null) { implementationCode.append(" extends ") .append(baseType) .append("Impl"); } implementationCode.append(" implements ") .append(interfaceName) .append(" {\n");       // Add in properties and methods      // Close up interface and implementation classes interfaceCode.append("}"); implementationCode.append("}");

实际上,生成属性和方法是相当简单的。将接口和相应实现的名称添加到类的存储器中,然后是右花括号,它们的作用是结束类。像这样成对生成类,而不是单独生成类,将使同时在接口和实现反映出该过程变得简单。检查源代码(请参阅 参考资料),就可以得到足够的解释。

清单 5中的粗体注释表示源列表中的多行代码。在这里精简代码是为了保持简洁。对于正在创建的 XML schema 的每个特性(由 schema attribute 表示),都会将读方法和写方法添加到接口和实现(实现还有执行方法逻辑的代码)。同时,将为实现类的代码添加变量。

最终结果就是本系列第一部分中生成的类。可以在这里查看它们,或者与本文中的其余代码一起下载(请参阅 参考资料):

ServiceConfiguration.java

ServiceConfigurationImpl.java

PortType.java

PortTypeImpl.java

DocumentType.java

DocumentTypeImpl.java

WebServiceConfiguration.java

WebServiceConfigurationImpl.java

有两个辅助程序类也将参与类生成:

BindingUtils ,将首字母变成大写。虽然,可以将这个方法添加到生成器类,但我打算以后在打包和解包类时再使用该方法,所以我将它归到这个辅助程序类中。可以 联机查看 BindingUtils ,或者可以 下载它。

DataMapping , SchemaMapper 类用来转换数据类型。可以 联机查看源码或者 下载源码。

从XML到Java代码的数据绑定之二 从XML数据创建类(5)

时间:2010-12-02

完成包

如许多其它开放源码软件,在这里显示的数据绑定包是一项正在进行中的工作。虽然它已经初具规模,但仍有很大空间可用于添加更多功能和做改进。因此,以这段代码为基础,可以有许多方式应用程序中加以衍生。

可以重新使用该样本代码,以将 XML schema 的数据约束转换为类型安全的 Java 接口和实现。例如,迄今为止,示例代码还没有处理 XML schema 中可能指定的范围。而对于许多 XML 开发人员,那些数据范围才是使用 schema 的真正原因。然后,请考虑清单 6 中 Web 服务的扩充 XML schema。

清单 6. 带扩充约束的 Web 服务配置

<?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=&q

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