【发布时间】:2011-04-27 10:02:36
【问题描述】:
我有两个应用程序,一个作为客户端,另一个作为服务器。在服务器应用程序中,我使用 Eclipse 中的 xjc 生成 ObjectFactory 和类。因此,其中一个类称为 widgetEvenCall。来自xsd:
...
<xs:element name="widgetEventCall">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="tns:widgetEventDescriptor" />
<xs:element minOccurs="0" maxOccurs="unbounded" ref="tns:widgetParameter" />
</xs:sequence>
</xs:complexType>
</xs:element>
JAXB xjc 生成类 WidgetEventCall、WidgetEventDescriptor 和 WidgetParameter,以及它们的 getter 和 setter。
既没有这些类也没有 ObjectFactory 的客户端应用程序远程调用服务器应用程序上的服务,结果得到一个 XML,如下所示:
. . .
<widgetEventCall>
<widgetEventDescriptor> ... </widgetEventDescriptor>
<widgetParameter>...</widgetParameter>
<widgetParameter>...</widgetParameter>
. . .
</widgetEventCall>
幸运的是,客户端应用程序可以访问 .xsd 定义。我的问题是:是否有可能,拥有 xml 内容和 xsd 定义,为 widgetEventCall、widgetEventDescriptor 和 widgetParameter 创建对象,就像它们是由 xjc 创建的一样,包括 getter 和 setter,让客户端应用程序不了解它们,使用完全反思?有没有一种自动化的方法可以实现这一目标?
我的目标是将此结果用于 JSP 文件,即将对象放入请求中并像 widgetEventCall.widgetParameter[0].someProperty 一样访问它,所以我需要生成 getter。
提前致谢。
琼。
【问题讨论】:
标签: java dynamic xsd jaxb javabeans