快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
有一点不确定性,但它在很大程度上已趋于稳定,并可望在年内定型。我们可以在一个 XML 方案中编写数据约束条件,然后用这个方案验证可能的实例文档,以确保解包能在这些实例文档上进行。下面的 XML 方案表示我们的 web 容器服务的数据接口。

清单 2. 表示一个 web 容器配置文档的数据接口的 XML 方案

<?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>

清单 2 中的 XML 方案定义了几个不同的数据对象,它们合起来表示一个 web 服务的配置对象。首先,定义了一个核心服务配置( serviceConfiguration ),它包含版本和名称。这可用作所有服务(如负载均衡服务、EJB 容器,当然还有我们的 web 服务)的基本对象。然后,作为此基本服务的扩展,又定义了 web 服务配置( webServiceConfiguration )。请注意,Java 成型之后,方案就已经为数据接口建立了模型。我们将附加的 web 服务属性 port 和 document 添加到 version 和 name 基本属性中。这些属性本身都是对象,具有它们自己的属性( protocol 、 root 、 error 等)。

在此方案的定义方式中,特征代表简单的 Java 类型,通常是原始 (primitive) 类型。这样, name 和 version 就分别成为类型 String 和 float 的 Java 原始类型。 port 和 document 这样的元素成为 Java 对象,它们可以有自己的属性,还是用特征来表示。 这样就出现了递归现象:元素变成新对象,并对它的每个属性进行检查。如果属性是一个特征,就为此对象创建一个简单的 Java 原始成员变量;如果属性是元素,则创建一个新的对象,并作为一个成员变量将其添加,然后在这个新对象上又开始同样的过程,直到全部类都已创建为止。

从萝卜 ... 嗯 ... XML 获得 Java

一旦创建了 XML 方案,您就需要从这个方案中提取出必需的信息,来确定应该创建哪些 Java 类。这个过程的第一步是查看 XML 方案,并严格确定输出应该是什么。对于简单的 serviceConfiguration 对象,定义了两个 Java 原始属性: name 和 version 。 对于这样一个简单的对象,确定所需的接口并不难。 只需将

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